Dúvida sobre if e else em C
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
Curtidas 0
Respostas
Matheus
01/05/2022
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;
}
GOSTEI 0