我正在做一本書中的以下程序,不明白我在哪裏出錯。有人能向我指出我失蹤的邏輯錯誤嗎?有人可以向我指出一個小邏輯錯誤嗎?
開發一個程序,該程序將輸入每輛坦克所使用的行駛里程和加侖數。 程序應該計算並顯示每個加侖獲得的每加侖英里數。處理完所有輸入信息後,程序應計算並打印所有油罐車獲得的每加侖組合英里數。
#include <stdio.h>
int main(void) {
int total = 0, count = 0;
float gallons_used, mpg, miles;
while(gallons_used != -1) {
printf("Enter the gallons used (-1 to end): ");
scanf("%f", &gallons_used);
printf("Enter the miles driven: ");
scanf("%f", &miles);
mpg = miles/gallons_used;
printf("Miles/gallon for this tank was %f\n", mpg);
total += mpg;
count++;
}
total /= count;
printf("Average miles to the gallon was: %d\n", total);
return 0;
}
現在看來,我有循環恰到好處,直到點我值爲-1退出,因爲它仍要求該艙的里程,顯然它輸入完全拋出了總數在最後。
這是因爲你不讀取用戶加侖後才退出。在此之後放置一個break語句而不是while條件。 –
您檢查'gallons_used'的值,但您從未初始化它!如果它恰好從值「-1」開始呢? – abelenky
或者至少只是檢查'gallons_used <0',如果是的話,跳出循環 –