Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sarcofagobra

while

Recommended Posts

O programa tá rodando normal, mas quando digito -1 pra sair ele não sai, o que ta errado?

main(){

      int num1, num2;


      while(num1 || num2 != -1){

         printf("Informe o número 1 -1 para sair ");
         scanf("%d", &num1);

          printf("\nInforme o número 2 -1 para sair ");
           scanf("%d", &num2);

           }
           system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce fez os 2 serem -1? pois esta é a condição que colocou

Compartilhar este post


Link para o post
Compartilhar em outros sites

int main( void ){

      int num1 = 1, num2 = 1;


      while(num1 && num2 != -1){

         printf("Informe o número 1 -1 para sair ");
         scanf("%d", &num1);

          printf("\nInforme o número 2 -1 para sair ");
           scanf("%d", &num2);

           }
           system("pause");
     return 0;
}

 

Isso deve resolver. Você deveria utilizar o operador && no while, pois ele significa E, enquanto o operador || significa OU. Então, se num2 ficar igual a -1, o while acabará. A inicialização dos valores acima deve acabar com o undefined behaviour...

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

int main( void ){

      int num1 = 1, num2 = 1;


      while(num1 && num2 != -1){

         printf("Informe o número 1 -1 para sair ");
         scanf("%d", &num1);

          printf("\nInforme o número 2 -1 para sair ");
           scanf("%d", &num2);

           }
           system("pause");
     return 0;
}

 

Isso deve resolver. Você deveria utilizar o operador && no while, pois ele significa E, enquanto o operador || significa OU. Então, se num2 ficar igual a -1, o while acabará. A inicialização dos valores acima deve acabar com o undefined behaviour...

 

Abraços :D

 

C não tem boolean, logo ele usa um int para fazer verificações.

 

fazer

 

while(num1 && num2 != -1)

 

é o mesmo que

while((num1 != 0) && (num2 != -1))

 

se ele quer que saia quando qualquer um dos numeros for -1, o correto seria

 

while((num1 != -1) && (num2 != -1))

 

assim ele verifica os dois se são -1,

 

do outro jeito, se num1 for qualquer coisa diferente de 0, ele considera verdadeiro.

http://ideone.com/4WIvf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além disso, sekkuar, utilizar while(num1 && num2 != -1) é mais recomendado do que o modo extenso que você mostrou.

 

É um idiom famoso da C utilizar while(var) do que while(var != 0), sério, você seria linxado em IRC's por fazer algo do tipo ASHUASHSAUHASUSAHSAU

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

C tem boolean desde o C99: _Bool.

 

Guidjos C tem boolean?

Até hoje me falaram que nao tinha, seria uma mão na roda cara, como é esse negocio ai? Você pode fazer um exemplo para eu ver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

É necessário um compilador com C99. Tendo um, inclua o seguinte header:

 

#include <stdbool.h>

 

Aí terá os tipos bool e _Bool, são iguais, e as definições true e false.

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah muleke agora sim hein, ow dessa eu nao sabia.

E vem k onde eu vejo se o meu compilador tem o C99 eu uso o dev-C++ eu procurei lá mas não achei essa informação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O dev-c++ utiliza o compilador de C++ do MinGW, não de C...

 

Mas o compilador de C do MinGW suporta sim C99, você só tem que habilitar a switch --std=c99...

 

Hein, desista do dev-c++, ele foi descontinuado há mais de 10 anos, na época em que ainda existia o Windows 95... sério, use o Code::Blocks ou o VisualStudio, o dev-c++ é coisa de professor ruim que ensina coisa ruim pra aluno D:

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kramba maninho não sabia que o DEV-C tava morto, eu ja houvi falar desse Code Blocks

 

... o dev-c++ é coisa de professor ruim que ensina coisa ruim pra aluno D:

Abraços :D

 

Ah kra fala isso não, coitada da minha professora ela é gostosa :grin:

 

Ow falando em ensinar coisa ruim pro aluno, você indica algum livro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala inglês?

 

Se sim, os melhores são os seguintes livros:

 

C: C Programming, a Modern Approach, 2nd Edition

C++: C++ Primer, 4th Edition (NÃO é C++ Primer Plus)

 

Em português não tenho nenhuma recomendação, são todos horrorosos D:

 

 

Hein, sério, saia do DEV-C++, vá para o Code::Blocks que ainda por cima funciona no linux, o que é um ponto a mais...

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aoow obrigado Renato, pode deixar kra já to vendo esse Code::Blocks, vou atrás desses livros tambem.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.