關于i++在sum+=i*flag前后的問題個人看法
? ?賦的值 i=1,sum=0,flag=1下面是程序
? ? while(i<=100)
? ? { ? ?
? ? ? ? sum+=i*flag;
? ? ? ? i++ ;?
? ? ? ? flag*=-1;
? ? }
printf("sum=%d\n",sum);?
? 這個我認為才是正確的答案。結果肯定是sum=0+1-2...-100;
? ? while(i<=100)
? ? { ? ?
? ? ? ???? i++ ;?
? ? ? ? sum+=i*flag;
? ? ? ? flag*=-1;
? ? }
printf("sum=%d\n",sum);?
這是題目給的標準答案,結果的確沒錯,但是輸出的應該是sum=0+2-3。。。+100-101也是-50. ? ?個人認為這個只是巧合,正確的應該是第一種。不知道是否對了,求高手解答,謝謝。
2015-10-16
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認為最合理的循環(huán)結構完成功能吧 */
? ? int sum = 0; ?//定義計算結果變量sum
? ? int i = 1; ? ?//定義循環(huán)數字變量i
? ? int flag = 1; //定義符號狀態(tài)變量flag
? ? int ii;
? ? printf ("sum=");
? ? while(i<=100)
? ? { ? ?
? ? ?ii= i*flag;
? ? ?// ? printf ("sum=");
? ? ?printf("%d",ii);
? ? ?if(ii<0)
? ? ?{
? ? ? ? ?printf ("+");
? ? ?}
? ? ? ? sum+=i*flag;
? ? ? ? i++ ;?
? ? ? ? flag*=-1;
? ? }
printf("=%d\n",sum);?
? ? return 0; ? ?
}
加幾行語句,顯示結果就會告訴你 ?i++應該是在后面。
2015-10-16
我完全同意樓主的意見,標準答案的代碼應該是不正確的。按照題目要求,i++應該在后。
2015-09-30
如果是世界開發(fā)的話,i++放到最后比較好,這里只是個練習,不用計較這些,主要是理解這三個循環(huán)的區(qū)別就可以了