赋的值 i=1,sum=0,flag=1下面是程序
while(i<=100)
{
sum+=i*flag;
i++ ;
flag*=-1;
}
printf("sum=%d\n",sum);
这个我认为才是正确的答案。结果肯定是sum=0+1-2...-100;
while(i<=100)
{
i++ ;
sum+=i*flag;
flag*=-1;
}
printf("sum=%d\n",sum);
这是题目给的标准答案,结果的确没错,但是输出的应该是sum=0+2-3。。。+100-101也是-50. 个人认为这个只是巧合,正确的应该是第一种。不知道是否对了,求高手解答,谢谢。
#include <stdio.h>
int main()
{
/* 小伙伴们:
选择你们认为最合理的循环结构完成功能吧 */
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
int flag = 1; //定义符号状态变量flag
int ii;
printf ("sum=");
while(i<=100)
{
ii= i*flag;
// printf ("sum=");
printf("%d",ii);
if(ii<0)
{
printf ("+");
}
sum+=i*flag;
i++ ;
flag*=-1;
}
printf("=%d\n",sum);
return 0;
}
加几行语句,显示结果就会告诉你 i++应该是在后面。
我完全同意楼主的意见,标准答案的代码应该是不正确的。按照题目要求,i++应该在后。
如果是世界开发的话,i++放到最后比较好,这里只是个练习,不用计较这些,主要是理解这三个循环的区别就可以了