為什么使用while循環以前還要定義flag=1?我的for語句得出的結果為什么是-2550啊
#include <stdio.h>
int main()
{
??? /* 小伙伴們:
?????????? 選擇你們認為最合理的循環結構完成功能吧 */
??? int sum = 0;? //定義計算結果變量sum
??? int i = 1;??? //定義循環數字變量i
??? int flag = 1; //定義符號狀態變量flag
???
??? //使用while循環
??? while(i<=100)
??? {
??????? flag=1;
??????? if(i%2==0)
??????? {
??????????? flag=-1;???????
??????? }
??????? i++;
??????? sum+=flag*i;
??? }
??? printf("%d",sum);
}
???
??? //使用for循環
??? for(i=1;i<=100;i++)
??? {
??????? if(i%2==0)
??????? {
??????????? flag=-1;
??????????? sum+=i*flag;
??????? }
???????
??? }?
??? printf("sum=%d\n",sum);
???
??? return 0;???
}
2020-03-20
1、不定義的話沒有這個內存地址和內存單元中你所認為flag的值
2、For循環里面你沒有規定i為奇數時的相加,即你只是將1~100之間的偶數相加了而已,故得-2550
第一次回答問題,若有錯誤,請多包涵 ! ! !