C语言.下列程序的运行结果是.下列程序的运行结果是________。
main()
{int i=0,k=100,j=4;
if(i+j)
k=(i=j)?(i=1):(i=i+j);
printf("%d\n",k);
}
A. 0 B. 1 C. 4 D. 5
就不能把代码弄得好看一点么……
结果是 1,因为
k = (i = j) ? (i = 1) : (i = i + j);i 用的是赋值,不是判断是否相等。
怎么算的呀....
拜托了
追答一
if(i+j) i+j=0+4=4 4!=0 所以执行k=...。
二
k=(i=j)?(i=1):(i=i+j)
先分析 (i=j), i=j=4 不为零 所以 k=(i=1)=1;
最终输出 k 即1