【发布时间】:2014-02-19 22:16:38
【问题描述】:
在下面的代码中输出是 1 但它应该是 2 。怎么样?
#include<stdio.h>
int main()
{
int count=0,i;
int num[4]={1,2,3,4};
for(i=0;i<4;++i)
count = count+(num[i]%2==1)?1:0;
printf("%d",count);
return 0;
}
【问题讨论】:
-
当然,
count += num[i] % 2;太复杂了,你决定你的程序需要分支。 -
我注意到您的原始代码和所有给出的答案都是错误的,因为
x%2==1首先没有检查奇怪。x%2!=0检查奇数。 如果操作数是负数,那么余数也可以是负数。
标签: c output ternary-operator