Guest Markito Posted May 22, 2013 at 04:42 PM Report #508378 Posted May 22, 2013 at 04:42 PM (edited) Boa tarde; recentemente mudei para o linux e estou a rever a matéria que tinha estudado em programação, e aproveito aproveito a trabalhar com o code::blocks no linux, o que me parece que é essencialmente a mesma coisa, ou talvez arrisco dizer um pouquinho melhor. Reparem neste código que de tão básico me dá vergonha de postar (sim, não tenho estudado muito c/c++ mas isso é porque estive o tempo quase todo a estudar matemática para o exame maiores de 23 que aconteceu este mês!) #include <stdio.h> main() { int num; printf("Introduza um número..."); scanf("%d",&num); printf("O número que introduziu foi...%d\n"); } Mas porque é que quando introduzo um número qualquer me devolve no prompt sempre o número 1? a que se deve isso? E como posso corrigir' Agradeceria imenso uma ajuda da vossa parte... Muito obrigado desde já 👍 ! Edited May 22, 2013 at 06:55 PM by pmg
bioshock Posted May 22, 2013 at 04:45 PM Report #508379 Posted May 22, 2013 at 04:45 PM Convém chamares a variável.. printf("O número que introduziu foi...%d\n", num);
pikax Posted May 22, 2013 at 04:46 PM Report #508380 Posted May 22, 2013 at 04:46 PM primeiro declara a main como: int main() segundo, o teu printf, nao estas a por o numero: printf("O número que introduziu foi...%d\n",num); terceiro, faz return 'a funcao main: return 0; Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
pmg Posted May 22, 2013 at 07:01 PM Report #508393 Posted May 22, 2013 at 07:01 PM (edited) Ja outros membros te disseram o que estas a fazer mal. Nao ha obrigacao nenhuma do programa com comportamento indefinido imprimir sempre 1, ou abortar sempre, ou outra coisa qualquer. Um programa com comportamento indefinido pode imprimir 1 as quartas-feiras, crashar as quintas, transferir dinheiro da tua conta as sextas, ..., ... Em principio, a razao porque o teu programa imprime sempre 1 'e porque 1 'e o resultado do scanf() que fica 'pendurado'. O print depois usa esse numero 'pendurado' #include <stdio.h> int main(void) { int num; printf("Introduza um número...\n"); scanf("%d", &num); /* o resultado do scanf 'e 1 */ /* o 1 fica 'pendurado' */ printf("O número que introduziu foi...%d\n"); /* o printf() vai usar o numero 'pendurado' */ } Experimenta, neste programa meter 3 numeros seguidos duma letra 🙂 #include <stdio.h> int main(void) { int num[10]; printf("Introduza números...\n"); scanf("%d%d%d%d%d%d%d%d%d%d", /* o resultado fica 'pendurado' */ num + 0, num + 1, num + 2, num + 3, num + 4, num + 5, num + 6, num + 7, num + 8, num + 9); printf("O número que ficou 'pendurado' foi %d\n"); /* o printf() vai usar o numero 'pendurado' */ } Resumo: NAO USES PROGRAMAS COM COMPORTAMENTO INDEFINIDO! Edited May 22, 2013 at 07:04 PM by pmg What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Guest Markito Posted May 23, 2013 at 09:29 PM Report #508646 Posted May 23, 2013 at 09:29 PM Pessoal muito obrigado pela ajuda! dei apenas uma vista de olhos nos vossos comentários, mas hoje já é tarde. amanhã vou lê-los com toda a atenção que merecem e responderei com mais convicção. Obrigado na mesma; muito obrigado! 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now