草帽的意志
2016-09-25 16:12
#include <stdio.h>
int main()
{
/* 小伙伴们:
选择你们认为最合理的循环结构完成功能吧 */
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
int flag = 1; //定义符号状态变量flag
//使用while循环
while(i<=100)
{
i++;
sum+=i*flag;
flag*=-1;
}
i = 1; //重新初始化变量i
//do-while循环
do{
i++;
sum+=i*flag;
flag*=-1;
}while(i<=100);
i = 1; //重新初始化变量i
//使用for循环
for(i=1;i<=100;i++)
{
sum+=i*flag;
flag*=-1;
}
printf("sum=%d\n",sum);
return 0;
}
你的意思是说sum的值和答案给的不一样是吗?
这不是错误,while 、do while 、for三者都能实现循环功能
只是你将这三个循环都写在一起了
写在一起也就算了,你没有初始化sum的值
所以sum一直是累加的
因此你的答案不符
如果改的话
#include <stdio.h> int main() { /* 小伙伴们: 选择你们认为最合理的循环结构完成功能吧 */ int sum = 0; //定义计算结果变量sum int i = 1; //定义循环数字变量i int flag = 1; //定义符号状态变量flag //使用while循环 while(i<=100) { i++; sum+=i*flag; flag*=-1; } printf("sum=%d\n",sum); i = 1; sum = 0; //重新初始化变量i //do-while循环 do{ i++; sum+=i*flag; flag*=-1; }while(i<=100); printf("sum=%d\n",sum); i = 1;sum = 0; //重新初始化变量i //使用for循环 for(i=1;i<=100;i++) { sum+=i*flag; flag*=-1; } printf("sum=%d\n",sum); return 0; }
没错啊,用一种就行,不用三个都用。三个都用你没重置sum的值
C语言入门
926025 学习 · 20793 问题
相似问题