Rui Ribeiro 0 Denunciar mensagem Publicado 9 de Dezembro de 2011 Estava a fazer uns exercicios , e quando corro este exercicio, que consiste em apresentar o quadrado da soma de tres numero, na janelinha preta aparece um numero gigante, que nao percebo o que é. vejam se no vosso se passa o mesmo; #include<stdio.h> #include<stdlib.h> int a,b,c,result; int main() { printf("Digite o primeiro numero\n"); scanf("%d",&a); printf("Digite o segundo numero\n"); scanf("%d",&b); printf("Digite o terceiro numero\n"); scanf("%d",&c); result = a + b + c; result = result * result; printf("%d\n\n",&result); printf("O quadrado da soma dos tres numeros e: %d\n\n",result); system("Pause"); } Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
andre_mz 0 Denunciar mensagem Publicado 9 de Dezembro de 2011 Que valores estás a colocar e que valor te dá? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
KTachyon 278 Denunciar mensagem Publicado 9 de Dezembro de 2011 Coloca a declaração de variáveis dentro do main: int main() { int a, b, c, result; faz o return no final da função, e não utilizes o system("pause"). Utiliza o getchar(). Que números utilizaste para a, b e c? Nesta instrução não estás a imprimir o valor final, mas o endereço de memória onde está a variável: printf("%d\n\n",&result); “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Rui Ribeiro 0 Denunciar mensagem Publicado 9 de Dezembro de 2011 comecei por colocar o valor 1 em todos, apareceu me logo a seguir a digitar o terceiro numero o numero 42300094 e depois o resultado certo. o que eu fiz agora foi, retirar o "printf("%d\n\n",&result);", e já me deu certo, o tal numero desapareceu.. mas gostava de saber porque razão aquilo se deu Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
andre_mz 0 Denunciar mensagem Publicado 9 de Dezembro de 2011 Porque estavas a imprimir a posição de memória. &result é a posição de memória. result é o valor do inteiro. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Rui Ribeiro 0 Denunciar mensagem Publicado 9 de Dezembro de 2011 KTachyon no Dev C++ que eu tenho o getchar() não funciona, ele fecha automaticamente a seguir a definir os valores Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Rui Ribeiro 0 Denunciar mensagem Publicado 9 de Dezembro de 2011 obrigado andre_mz Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
KTachyon 278 Denunciar mensagem Publicado 9 de Dezembro de 2011 Não pausa porque ainda tens caracteres no buffer de input. Porque o último scanf não comeu o último caracter que entrou, que foi um '\n'. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites