2
respostas

Números de 1 até 100 usando "For"

Minha dúvida é: O for não deveria ser i <= 99 ? Afinal, se for i <= 100 o "i++" vai adicionar mais 1 e vai contar até 101, não?

#include <stdio.h>

int main() {

int i;

for (int i = 1; i <= 99; i++)
{
printf("%d\n", i);

return 0; } }

2 respostas

Olá, Ana. Tudo bom? Diferente do while, o for não executa o i++ na hora. Ele primeiro executa o comando dentro do escopo e depois a ação, que no caso é o incremento do i. Então, quando você coloca i = 1, ele primeiro vai printar o i como 1 e depois incrementar e depois verificar se o novo valor de i ainda satisfaz a condição, logo, quando o i é = 100, ele satisfaz pela última vez, pois quando printar o 100 e incrementar, o 101 já não satisfará mais a condição e ele não printa.

Sim, você está correta! Se o objetivo é imprimir os números de 1 a 99, o loop for deveria ser for (int i = 1; i <= 99; i++). Se for i <= 100, o loop irá executar 101 vezes, imprimindo os números de 1 a 100. A instrução return 0 está dentro do loop for, então o programa irá encerrar na primeira iteração, sem imprimir nada. O código corrigido seria:

#include <stdio.h>

int main() {
    int i;

    for (i = 1; i <= 99; i++) {
        printf("%d\n", i);
    }

    return 0;
}