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.
// OBI 2008 - NÃvel Prog. Júnior - Fase 1 | |
// Problema: OBI | |
// Solução utilizando o "for" como estrutura de repetição | |
#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: