#include <stdio.h>
int main()
{
int a=3,b=4,c=5;
if(a=c)
a=a+b;
if(a>c)
c=a-b;
printf("%d,%d,%d\n",a,b,c);
}
if(a==c)才对,你这里a=c,不就把c的值赋值给了a吗,然后a=a+b ,所以就变成9了
#include<stdio.h>
int main()
{
int a = 3, b = 4, c = 5;
if (a == c)
a = a + b;
if (a > c)
c = a - b;
printf("%d,%d,%d\n", a, b, c);
return 0;
}
因为在if语句条件表达式是c赋值给a,此时a的值为5,在执行a=a+b;语句,则a的值为9。再执行后面if语句。。。
如果结果是3,4,5的第一条if是if(a==c),因为3不等于5,则if后面的表达式不执行,第二条if也不成立,直接输出a,b,c。。。
你是把赋值看成等于了。