訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容
下面是引用 ronlain 於 2011-01-08 23:43 發表的 : 你再試看看吧 應該沒少也沒多 第一次i=1 sum+=1 1不會少最後一次 i=99 sum+=99 i+=2 i=101 這個101下一個 if (i<100) 不會成立 int i=1,sum=0; start: sum+=i; i+=2; if(i<100)
下面是引用 totsi 於 2011-01-31 08:56 發表的 : 原因很簡單,因為您是先加完再印,所以i=1,且i+=2時,下一行i已經等於 i = 1 +2了,所以結果當然會是3。因此就像您改的,要先從-1開始加,才會讓第一組出來的數字為1。除非您是先印再加。但ronlain大大說的也沒錯,因為ronlain大大並沒有印值,而是直接算總和,所以他一開始把i=1加進來,所以總和也是會對的。而且您也沒有說少的1是「沒加進和裡」還是「沒印出來」,我想,這ˋ樣要debug可能會有所落差嚕~~希望對您有幫助
下面是引用 csr 於 2011-01-31 11:14 發表的 : 感恩大大解說已試過編譯還是一樣所以仍然有問題謝謝
int sum = 0, i = 1; while ( i <= 100 ) { sum += i; printf("The addition value = %d\n", i); i+=2; } printf("The sum =%d\n", sum); system("pause");
下面是引用 totsi 於 2011-01-31 12:52 發表的 : 那就好玩嚕,我用ronlain大大的方式,改用while來寫而已,結果同ronloain大大所言。 所以錯是錯在結果不對嚕?XD[code].......