Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao rodar programa

Oi, boa noite.

No curso Introdução a Linguagem C, o professor em um dado momento passa o seguinte desafio:

"Faça um programa que imprima todos os números de 1 a 100 usando o laço de repetição for

Cole seu código aqui."

A opinião do instrutor ficou assim:

include

int main() {

// repare no menor-igual

for(int i = 1; i <= 100; i++) {

printf("%d \n", i);

}

}

Parece que está tudo certo com esse programa, mas quando eu fui rodar ele apareceu a seguinte mensagem de erro:

error: 'for' loop initial declarations are only allowed in C99 or C11 mode

Aí ele não rodou.

Alguém poderia me ajudar?

4 respostas
solução!

Possivelmente esta versão do seu compilador é bem antiga. A mensagem de erro diz que a variável “i” não pode ser declarada dento do laço FOR. Tente fazer da seguinte forma:

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

Eu tentei da forma que você sugeriu e deu certo, Júnior.

1) O que você fez?

Obrigado pela dica sobre a versão do compilador, mas eu já estou usando a última versão do compilador Code::Blocks (a do começo de 2016)

2) Se não é por causa de versão antiga. O que será que pode ser?

Alberto, não entendi. Funcionou ou não declarando a variável fora do FOR?

Ah foi isso que você fez, declarou fora. Entendi.

Declarando fora funcionou sim.