Dúvida sobre if e else em C

C

01/05/2022

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;
}
Matheus

Matheus

Curtidas 0

Respostas

Matheus

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;
}
GOSTEI 0
POSTAR