Ir para o conteúdo
Guest Markito

testando o codeblocks no Linux...

Mensagens Recomendadas

Guest Markito

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á :thumbsup: !

Editado por pmg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

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."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

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!

Editado por 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Guest Markito

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! :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.