Estrutura de Repetição II

Outra estrutura de repetição muito importante é o for. Diferentemente do while, além de passarmos uma condição para o for, passamos também um inicializador e um incremento, da seguinte maneira:

for (inicializador ; condicao ; incremento)
{
	//seu código
}

Para que você entenda melhor como funciona o for, vamos resolver novamente o problem OBI, usando um for dessa vez. Vamos resumir novamente o problema para aqueles que não viram a aula de while.

Basicamente o problema nos pede que, dado o número N de participantes da olimpíada, as pontuações X e Y na primeira e segunda fase de cada competidor e a pontuação P de corte para ser convidado para o curso na unicamp, devemos imprimir a quantidade de convidados para o curso.

O problema nos diz que a pontuação total de um aluno é dada por X+Y. Então basta passarmos por cada aluno usando o for e fazermos um if para ver se sua pontuação é maior ou igual ao corte. Caso seja, incrementamos um à nossa resposta.

#include <iostream>
 
using namespace std;
 
int main()
{
	int n, p, x, y, ans = 0; // declaro as variáveis
 	
 	cin >> n >> p; //leio N e P
 
	for(int i = 0 ; i < n ; i++)
	{
		cin >> x >> y; // leio o X e Y de cada competidor

		x += y; // faço X receber a pontuação total

		if(x >= p)
		{
			ans++; // nossa resposta aumenta
		}
	}
	
	cout << ans << "\n"; // imprimo a nossa resposta

	return 0;
}

Veja que ao invés de inicializar um contador fora do loop e incrementá-lo dentro do loop, fazemos isso na própria estrutura do for, de forma mais compacta. Os comandos break e continue podem ser usados da mesma forma que no while.

Problemas para praticar: