[問題] 印不出所要的結果

看板C_and_CPP (C/C++)作者 (★GY大★)時間16年前 (2010/03/20 20:04), 編輯推噓2(2012)
留言14則, 5人參與, 最新討論串1/1
程式碼如下 #include<stdio.h> int main(void) { int counter; float total1; float total2; float num1; float num2; float num3; float average; total1=0; total2=0; counter=0; printf("Enter the gallons used (-1 to end):\n"); scanf("%f",&num1); while (num1!=-1) { total1 = total1+num1; counter = counter+1; printf("Enter the miles driven:\n"); scanf("%f",&num2); num3=(float)num2/(float)num1; printf("The miles / gallon for this tank was %.6f\n",num3); printf("Enter the gallons used (-1 to end):\n"); scanf("%f",&num1); } total2 = total2+num2; if (counter!=0) { average=(float)total2/(float)total1; printf("The overall average miles/gallon was %.6f\n",average); } return 0; } 程式跑到最後,也就是if的那部分,跑不出小弟所要的結果, 例如我先輸入12.8,再輸入287,得出來應該是22.421875,之後小弟輸入-1, 來跳出while迴圈,但最後那一行應該要顯示 The overall average miles/gallon was 22.421875 但卻顯示其他數字,請問小弟哪裡有寫錯嗎? 這問題想了好久都想不出來,煩請高手指點一下!! 感謝您!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.64.151.20

03/20 20:11, , 1F
total1跟2沒更新?
03/20 20:11, 1F

03/20 20:16, , 2F
抱歉~我還是新手~請問一下更新的意思是什麼啊
03/20 20:16, 2F

03/20 20:16, , 3F
assign過去嗎?
03/20 20:16, 3F

03/20 20:18, , 4F
你第一次迴圈的num2沒有assign初值
03/20 20:18, 4F

03/20 20:23, , 5F
num2不是自己輸入的嗎 需要assign 0給他嗎?
03/20 20:23, 5F

03/20 20:24, , 6F
total2 = total2+num2 這邊的num2沒有設定初值
03/20 20:24, 6F

03/20 20:24, , 7F
所以在這行他的num2數字會跑掉
03/20 20:24, 7F

03/20 20:25, , 8F
你的 (float) 好像是多餘的
03/20 20:25, 8F

03/20 20:29, , 9F
接收鍵盤輸入的num1 num2的值沒有存給total1 total2
03/20 20:29, 9F

03/20 20:29, , 10F
如果只輸入一次的話
03/20 20:29, 10F

03/20 20:32, , 11F
其實問題不在num2的初值 是在toatal2=total2+num2的時機
03/20 20:32, 11F
剛小弟試著把total2 = total2+num2; 放到while迴圈外 跑出來小弟所需要的了,但是如果輸入多組數字,又會出現不是小弟所需要的結果。 在請教一下各位高手,如果是多組的話,要怎麼跑出正確的結果呢? ※ 編輯: ggyy940 來自: 210.64.151.204 (03/20 20:40)

03/20 20:43, , 12F
只要把輸入num2和計算total2 的順序換一下就行了
03/20 20:43, 12F

03/20 20:43, , 13F
把total2 = total2+num2放到num2輸入後的正後方?
03/20 20:43, 13F

03/20 20:48, , 14F
出來了!!!謝謝各位的幫忙!!
03/20 20:48, 14F
文章代碼(AID): #1BfBdHo4 (C_and_CPP)
文章代碼(AID): #1BfBdHo4 (C_and_CPP)