C语言填空题:计算1-3+5-7…-99+101的值。

来源:百度知道 编辑:UC知道 时间:2024/09/28 15:20:01
下面程序的功能是计算1-3+5-7+……-99+101的值。

main()
{
int i,element,sum=0;
for(i=1;i<=101;i+=2)
{
________;sum=sum+seement;_______;
}
printf("%d\n",sum);
}
不好意思-``-是手滑了,不小心打错了。那个seement是element。。。我去试试,回头给你们分哈。

第一空:element=-i;
第二空:sum=-sum;
(经过测试,正确)

这是个蒙人的题,非常简单

首先纠正楼主一个错误:“________;sum=sum+seement;_______; ”里面的“seement”应该是你打错了吧,应该是“element”。

第一空:element=-i;
第二空:sum=-sum;

完整程序如下:

main()
{
int i,element,sum=0;
for(i=1;i<=101;i+=2)
{
element=-i;sum=sum+element;sum=-sum;
}
printf("%d\n",sum);
}

战法派 - 见习魔法师 三级

正确!

的确实蒙人的题目;具体解释:
sum=-1; sum=1
sum=1-2; sum= -1+2
sum=-1+2-3; sum=1+2-3;
....
经过奇数的运算的都恰好是1-3+5-7+……-99+101前面部分

(1)int seement = (i/2%2==0?1:-1)*i
i/2是使i有了奇偶之分,如1则为0(偶),3则为1(奇),5则为2(偶),7则为3(奇数).
%2是取余,其余数只有0或1,则是判断奇偶数,0为偶数,则三目运算为1,1为奇数,则三目运算为-1.
其中seement并没有定义,因此运用前需要定义.但我怀疑是楼主写错了变量名称,如果是的话那int就可以省略

(2)i=i
其实开始我是想留空的,但想到上面题目中有分号存在,留空的话会报错,所以就运行一条无关紧要的程序

element+=i
element*=-1

第一空:element = ( ((i-1)/2)%2==0 ? 1 : -1)*i;
第二空:空着

第一空int se