c語言入門之 4-10 循環結構之三種循環比較?怎么做都是錯的
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認為最合理的循環結構完成功能吧 */
? ? int sum = 0; ?//定義計算結果變量sum
? ? int i = 1; ? ?//定義循環數字變量i
? ? int flag = 1; //定義符號狀態變量flag
? ?
? ? for(i=1;i<=100;i++)
? ? {
? ? ? ? sum*=i*flag;
? ? ? ? flag*=-1;
? ? } ?
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0; ? ?
}
最適合的應該是for循環了。 問題來了,不太理解, ?flag的意義,求解之一,它本身代表什么,為什么要使用=-1呢?
我按以上代碼輸入,顯示錯誤, ?結果顯示為sum=0,求告知錯處,
2017-05-25
*- 是之前講的自乘 ? flag*=-1 ?等價于 ?flag = -1*flag = - flag
這就是正負的變換,負負得正,正負得負,這涉及到負數的幾次方問題,如果不懂,最好復習下數學
然后與i相乘,就會得到這樣的數列,1,-2,3,-4.....其它就是簡單的數列求和了。
?sum*=i*flag; ?就明顯用錯了,得用+=,即?sum+=i*flag
2017-05-25
flag就是要一次加的一次減的啊