美好的一天,我正在練習算術并開始進行一些實驗并感到困惑。我怎樣才能合計升、加油和投標?
#include <stdio.h>
int main()
{
int liter, refueled, tendered, changed;
printf("Enter the price of the fuel per liter: ");
scanf("%f",&liter);
printf("Enter the number of liters the customer wants refueled: ");
scanf("%f",&refueled);
printf("Enter the amount tendered: ");
scanf("%f",&tendered);
printf("your change is %.2f pesos. Thank you and come again!", changed = liter * refueled - tendered);
return 0;
}
uj5u.com熱心網友回復:
- 似乎
float更適合您的所有變數 (liter, refueled, tendered, changed)。沒有理由只允許使用一定integer量的燃料等。您還使用用于s 的“%f”scanf來編輯它們。float - 最好
changed在單獨的行中分配,或者完全擺脫它,只需將數學運算式放在printf呼叫中。 - 您反轉了 的值
changed。應該是tendered - liter * refueled。
固定版本:
#include <stdio.h>
int main()
{
float liter, refueled, tendered, changed;
printf("Enter the price of the fuel per liter: ");
scanf("%f", &liter);
printf("Enter the number of liters the customer wants refueled: ");
scanf("%f", &refueled);
printf("Enter the amount tendered: ");
scanf("%f", &tendered);
changed = tendered - liter * refueled;
printf("your change is %.2f pesos. Thank you and come again!", changed);
return 0;
}
uj5u.com熱心網友回復:
您的掃描嘗試,例如scanf("%f",&liter);使用格式說明符 for float,但給出一個整數的地址。
這會導致未定義的行為,這意味著實踐中的“不要這樣做”(否則請查找該術語,或尋找有趣的“鼻惡魔”)。
最簡單的解決方法(假設您輸入整數值)是切換到"%d".
如果您改為使用floatfor 變數(可能是必要的),您應該知道,對于貨幣(例如tendered)的情況,非常推薦的最佳做法是轉換為計算最小面額的整數變數,例如美分。
uj5u.com熱心網友回復:
我接受了 wohlstad 的答案,這幾乎是完美的,并為您的計算添加了一個函式......
#include <stdio.h>
int calculation(int tendered, int liter, int refueled);
int main()
{
float liter, refueled, tendered, changed;
printf("Enter the price of the fuel per liter: ");
scanf("%f", &liter);
printf("Enter the number of liters the customer wants refueled: ");
scanf("%f", &refueled);
printf("Enter the amount tendered: ");
scanf("%f", &tendered);
changed = calculation(tendered, liter, refueled);
printf("your change is %.2f pesos. Thank you and come again!", changed);
return 0;
}
int calculation(int tendered, int liter, int refueled){
int calcVal = tendered - liter * refueled;
return calcVal;
}
現在您可以根據需要編輯您的計算,添加更多或更少的東西等......
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467393.html
標籤:C
上一篇:被呼叫的函式在printf中起作用,但在算術陳述句中不起作用
下一篇:在鏈表中動態存盤資料的問題
