關(guān)于for的一個問題(循環(huán)結(jié)構(gòu)之三種循環(huán)比較)
?//使用for循環(huán) ????for(i=1;i<=100;i++) ????{ ????????i*=flag; ????????sum+=i; ????????flag=flag*(-1); ????}?? ????printf("sum=%d\n",sum);
不明白這樣為什么是錯的,實(shí)現(xiàn)1-2+3-4+5.......-100的和麻煩誰有空幫看下,謝了
2015-10-04
因?yàn)槟愕膇在修改正負(fù)值,導(dǎo)致循環(huán)出現(xiàn)問題,應(yīng)該用一個額外的變量保存i值進(jìn)行正負(fù)值轉(zhuǎn)換。
int flag = 1, sum = 0, t = 0;
for(int i=1;i<=100;i++)
? ? {
? ? ? ? ?t = i;
? ? ? ? t*=flag;
? ? ? ? sum+=t;
? ? ? ? flag=flag*(-1);
? ? }