敢問(wèn)大佬們?yōu)槭裁催@三個(gè)循環(huán)結(jié)果會(huì)相加呢 不是有 i = 1這個(gè) 重新初始化變量 i 嗎
#include <stdio.h>
int main()
{
??? /* 小伙伴們:
?????????? 選擇你們認(rèn)為最合理的循環(huán)結(jié)構(gòu)完成功能吧 */
??? int sum = 0;? //定義計(jì)算結(jié)果變量sum
??? int i = 1;??? //定義循環(huán)數(shù)字變量i
??? int flag = 1; //定義符號(hào)狀態(tài)變量flag
???
??? //使用while循環(huán)
??? while(i<=100)
??? {
??????? i++;
??????? sum = sum + i * flag;
??????? flag = flag * -1;
??? }
???
??? i = 1;? //重新初始化變量i
???
??? //do-while循環(huán)
??? do{
??????? i++;
??????? sum = sum + i * flag;
??????? flag = flag * -1;
??? }while(i<=100);
???
??? i = 1;? //重新初始化變量i
???
??? //使用for循環(huán)
??? for(i=1;i<=100;i++)
??? {
???? sum = sum + i * flag;
???? flag = flag * -1;
??? }?
??? printf("sum=%d\n",sum);
???
??? return 0;???
}
2019-03-02
樓上正解
sum的值沒(méi)有初始化
所以是以上一次循環(huán)結(jié)束后得到的sum繼續(xù)下一個(gè)循環(huán)
i=1是重置i
于是i又繼續(xù)在下一個(gè)循環(huán)函數(shù)里繼續(xù)浪
然后sum就不停的相加
2019-03-02
你可以在每個(gè)循環(huán)下面加一個(gè)printf輸出sum的值,然后再將sum初始化,這樣你就可以得到三個(gè)sum值做對(duì)比了
2019-03-02
因?yàn)閟um的值沒(méi)有初始化吧,sum就一直再加