Dúvida sobre if e else em C
01/05/2022
0
Por que, nesta arrumação, o else acaba sendo impresso?
O código funciona normalmente quando coloco os vários "if" dentro de um só "if" - fechando com chaves - e mantenho o else separado, mas desta forma não funciona, porque?
#include <stdio.h>
int main()
{
int x, y;
printf("Digite o valor de x e y(na ordem): ");
scanf("%i%i",&x,&y);
if(x>0 && y>0)
printf("Primeiro quadrante");
if(x<0 && y>0)
printf("Segundo quadrante");
if(x<0 && y<0)
printf("Terceiro quadrante");
if(x>0 && y<0)
printf("Quarto quadrante");
if(x==0 && y==0)
printf("Origem");
else
printf("Sobre o eixo");
return 0;
}
O código funciona normalmente quando coloco os vários "if" dentro de um só "if" - fechando com chaves - e mantenho o else separado, mas desta forma não funciona, porque?
#include <stdio.h>
int main()
{
int x, y;
printf("Digite o valor de x e y(na ordem): ");
scanf("%i%i",&x,&y);
if(x>0 && y>0)
printf("Primeiro quadrante");
if(x<0 && y>0)
printf("Segundo quadrante");
if(x<0 && y<0)
printf("Terceiro quadrante");
if(x>0 && y<0)
printf("Quarto quadrante");
if(x==0 && y==0)
printf("Origem");
else
printf("Sobre o eixo");
return 0;
}
Matheus
Curtir tópico
+ 0
Responder
Posts
01/05/2022
Matheus
Código que funciona:
#include <stdio.h>
int main()
{
int x, y;
printf("Digite o valor de x e y(na ordem): ");
scanf("%i%i",&x,&y);
if(x!=0 && y!=0)
{if(x>0 && y>0) // dúvida: pq se colocar ponto e vírgula após os "if", o código não funciona? (imprime tudo)
printf("Primeiro quadrante");
if(x<0 && y>0)
printf("Segundo quadrante");
if(x<0 && y<0)
printf("Terceiro quadrante");
if(x>0 && y<0)
printf("Quarto quadrante");
}
else
{if(x==0 && y==0)
printf("Origem");
else
printf("Sobre o eixo");}
return 0;
}
#include <stdio.h>
int main()
{
int x, y;
printf("Digite o valor de x e y(na ordem): ");
scanf("%i%i",&x,&y);
if(x!=0 && y!=0)
{if(x>0 && y>0) // dúvida: pq se colocar ponto e vírgula após os "if", o código não funciona? (imprime tudo)
printf("Primeiro quadrante");
if(x<0 && y>0)
printf("Segundo quadrante");
if(x<0 && y<0)
printf("Terceiro quadrante");
if(x>0 && y<0)
printf("Quarto quadrante");
}
else
{if(x==0 && y==0)
printf("Origem");
else
printf("Sobre o eixo");}
return 0;
}
Responder
Clique aqui para fazer login e interagir na Comunidade :)