LagMaster Posted April 2, 2012 Report Share Posted April 2, 2012 Boas 😛 Estou a ver-se aprendo C, e estou a ver uns tutoriais to "The New Boston" no youtube. Então estive a seguir um tutorial acerca de "If Statement Decision" Então fiquei com este código: #include <stdio.h> #include <conio.h> int main (void) { int num1; int num2; printf("Enter 2 number:"); scanf ("%d%d",num1, &num2); if (num1 == num2){ printf ("They are equal"); } if (num1 < num2) { printf ("%d is less than %d",num1, num2); } if (num1 > num2) { printf ("%d is greater than %d", num1, num2); } getch(); } Ao que me parece está igual ao do criador do tut, mas mesmo assim quando faço "Compile & Run" insiro um nº mas depois da erro e para de funcionar :S Sabem o que se passa de mal ? Provavelmente será um erro no código que não estou a ver.. Agradecido LagMaster ? YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
bsccara Posted April 2, 2012 Report Share Posted April 2, 2012 Não estás a passar um ponteiro para a variável num1 no scanf, mas sim a usar o seu valor não inicializado como ponteiro... Link to comment Share on other sites More sharing options...
LagMaster Posted April 2, 2012 Author Report Share Posted April 2, 2012 Desculpa mas aqui ainda estou um pouco a assentar os nomes de tudo e a logica ainda nao esta muito boa xd.. Como irei corrigir então ? Fazendo 2 scanf's separados ? e direccionando um ao num1 e o outro ao num2 ? YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
Diutsu Posted April 3, 2012 Report Share Posted April 3, 2012 porque é que no scanf fazes scanf("%d %d",num1,&num2); e não : scanf("%d %d",num1,num2); ou: scanf("%d %d",&num1,&num2); <- querias era ter escrito isto, btw. ? se tens 3 if's e eles são alternativos (se executas o 1º, não executas o 2º nem o 3º; se executares o 2º, não executas o 1º nem o 3º), usa o if-else com ifs encadeados, assim: if ( num1 == num2){ // codigo caso num1==num2 } else if (num1 < num2){ // codigo caso num1 < num2 } else { // não é preciso por if (num1 > num2), porque vai dar sempre verdade ao ser chamado este else; // codigo caso num1 > num2 } e para parar de funcionar vais precisar de carregar no enter. XX SINFO - Semana Informática Link to comment Share on other sites More sharing options...
LagMaster Posted April 3, 2012 Author Report Share Posted April 3, 2012 Estava a tentar fazer como no tutorial e salvo erro estava como pus.. Mesmo assim alterando continua a deixar-me digitar o primeiro numero so que apos esse enter diz que o programa deixa de funcionar como á pouco.. 😛 Que se passará ? ? Já a parte dos ifs vou trocar isso que postou pelo que está no tut , pois assim parece mais lógico.. Obrigado pela ajuda 😄 YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
pikax Posted April 3, 2012 Report Share Posted April 3, 2012 experimenta assim #include <stdio.h> int main (void) { int num1; int num2; printf("Enter 2 number:"); scanf ("%d %d",&num1, &num2); if(num1 == num2) printf ("They are equal"); else { if(num1<num2) printf ("%d is less than %d",num1, num2); else printf ("%d is greater than %d", num1, num2); } getch();//ira fazer get ao ENTER que esta no buffer por causa do \n scanf("%d",&num1); //para nao terminar } 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." Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 3, 2012 Report Share Posted April 3, 2012 resolver o problema dos "\n" .... char line[256]; ... fgets(line, 256, stdin); sscanf(line, "%d%d", &num1, %num2); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
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