这里为什么输入2结果是x=0,y=0

img


#include
int main()
{
int x,y;
scanf("%d",&x);
if(x < 0)
y = -1;
else if(x = 0)
y = 0;
else if(x > 0)
y = 1;
printf("x=%d,y=%d\n",x,y);
return 0;
}

img


一个等号是赋值,两个等号才是判断

你if后面的判断语句没有缩进,而且判断是 == ,不是 = 。而且没有引入 stdio.h。另外建议加大括号。

#include <stdio.h>

int main()
{
    int x, y;
    scanf("%d", &x);
    if (x < 0)
    {
        y = -1;
    }
    else if (x == 0)
    {
        y = 0;
    }
    else if (x > 0)
    {
        y = 1;
    }
    printf("x=%d,y=%d\n",x,y);
    return 0;
}

else if(x == 0) //用双等号
y = 0;

代码问题一:缩进不对,或者是没有使用花括号包裹if分支
代码问题二:else if(x = 0), 这里应该是x == 0。【就是因为这个else if(x = 0),导致x值为0】

#include
int main()
{
  int x,y;
  scanf("%d",&x);
  if(x < 0){
    y = -1;
  }
  else if(x == 0){
    y = 0;
  }
  else if(x > 0){
    y = 1;
  }

  printf("x=%d,y=%d\n",x,y);
  return 0;
}