Talvez o compilador não está conseguindo pegar a inicialização da variável na definição dela e talvez você tenha que deixá-lo entender em duas etapas como mostrei…
Quanto ao %i vs %d, no printf não fazem diferença, mas no scanf o %i é usado para ler octais ou hexadecimais como inteiros…
TerraSkilll
Parece que está sendo impresso o endereço de memória da variável, não seu conteúdo, que é o que pode acontecer se você colocar & na frente da variável:
printf("%d\n", &x); // isso imprime algo como 1244908
Tente criar um projeto do zero, e copiar o código do meu segundo post.
Abraço.
rodevops
Engraçado que ele fez corretamente, o lixo de memória pode ser por causa do compilador mesmo, já li algo a respeito que se você define valor pra variável na criação dela, alguns compiladores não entendem…
O pessoal fala mal pra caramba desse DevC parece ser obsoleto/abandonado, como uso linux e tenho gcc padrão não passo essa raiva
wldomiciano2 likes
MinGW não é compilador e Dev-C++ é apenas uma IDE.
Pelos prints que vc postou, dá pra ver que tá usando o GCC 4.9.2 de 64 bits.
O programa não encerrou corretamente, ali mostra que ele terminou com valor de retorno 9, o correto seria 0.
Vc definiu a função main com tipo de retorno void, mas ao final do corpo dela vc usou return 0.
Tenho duas idéias. Tente uma das possiveis soluções:
Troque o tipo de retorno de main, tire o void e coloque int