/* 2 至 20 之間偶數的總合 */
#include
#include
int main()
{
int a, sum;
a=2;
while (a <= 20)
{
sum=sum+a;
a=a+2;
}
printf(\"2 至 20 之間偶數的總合為 %d\\n\", sum);
system(\"PAUSE\");
return 0;
}
為什麼當我沒有設定 sum 的初值為 0 時,總和會變為 158?
為什麼一定要設定初值 0 給 sum 輸出才會為 110?
2006-07-31 10:22:56 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
因為什麼沒有設定 sum 的初值為 0 時, 系統會設一個不定值給 sum, 這次系統將 sum 的初始值設為 48, 但下次執行或拿到別台電腦執行可能結果會不一樣, 優良的程式設計應該要設定變數的初始值, 才不會程式 bug 一堆.
2006-07-31 10:34:35 · answer #1 · answered by ? 7 · 0⤊ 0⤋
當程式宣告變數時,程式會指向一個位址,然後依該型態給予空間,就如耗呆小綿羊說的,該位置可能曾被使用過。因此程式每次都可能會產生不同的初始值,建議養成給予初始值的習慣,要不然在大型程式Debug會很累的!
2006-08-01 16:58:54 · answer #2 · answered by Dark 1 · 0⤊ 0⤋
當程式宣告 sum 整數變數時,作業系統會把「用過的」空間,指定給程式的 sum 來使用。那個「用過的」變數空間,我們不知道它原先是被系統用來做啥的,只知道它一定是個「亂數」。
其他宣告的變數亦同,不管是宣告哪一種型態的變數,int a 也是一樣的。
2006-07-31 11:18:48 · answer #3 · answered by Big_John-tw 7 · 0⤊ 0⤋