注册 登录
编程论坛 C语言论坛

请问结果为什么是i>0

九笙 发布于 2019-10-13 18:28, 1550 次点击
#include<stdio.h>   
int main(void)
{
 int i = 0;
 if (i = 1)
 printf("i > 0\n");
 else if (i = 0)
 printf ("i = 0\n");
 else
 printf ("i < 0\n");
 return 0;
}
5 回复
#2
九笙2019-10-13 18:29
i不是0吗,怎么能输入i=1时的结果
#3
自学的数学2019-10-13 18:34
i = 1 是将1赋值给i.i的值是1.这里是赋值语句,不是等式。所以条件成立。 if (i = 1)
 printf("i > 0\n");就输出:i > 0
#4
twtbgitfk2019-10-13 18:43
应该要这样写吧,不应该直接if(i=1),跟之后的else if没什么关系了,直接赋止了
#include<stdio.h>   
    int main(void)
{
    int i = 0;
    if (i >0)
        printf("i > 0\n");
    else if (i ==0)//这里注意是双==,不然是赋值
        printf ("i =0\n");
    else
        printf ("i < 0\n");
    return 0;
}
#5
九笙2019-10-13 18:47
回复 3楼 自学的数学
明白了,谢谢您嘞
#6
九笙2019-10-13 18:49
回复 4楼 twtbgitfk
是的是的,因为初学,把==是判断相等=是赋值没搞清,谢谢啦
1