作业帮 > 综合 > 作业

c语言题中 (i & 1) (y += i*i*i) :(x += i*i);句话什么意思

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 15:53:44
c语言题中 (i & 1) (y += i*i*i) :(x += i*i);句话什么意思
#include
int main(void)
{
unsigned int m,n,i,x,y;
while (scanf("%u%u",&m,&n) = EOF)
{
if (m > n)
{
i = n;
n = m;
m = i;
}
x = y = 0;
for (i = m ; i
c语言题中 (i & 1) (y += i*i*i) :(x += i*i);句话什么意思
由于变量i是一个无符号数,所以表达式 (i & 1)实际上就是判断i是否是奇数,是的话表达式的值为1,否则是0 
所以语句
 (i & 1) ?(y += i*i*i) :(x += i*i);
实际上就是
if(i%2!=0)
{
    y += i*i*i;
}
else
{
    x += i*i;
}