我正在爲工資覈算編寫代碼。功能要求用戶工作時間和小時工資。另一個函數接受小時和費率作爲參數並計算並返回毛支付。然後將毛支付給一個計算並返回payrolltax(.22)的函數。然後調用一個函數接受毛支付和稅收作爲參數並返回netpay。最後將所有數據發送到將顯示所有數值(總時數,小時數,毛支付,稅款和淨支付)的函數。我的netpay正在顯示我0,而稅則顯示錯誤的答案。誰能告訴我我錯了哪裏?爲什麼我的netpay無法顯示答案?
/* Payroll Check */
#include <stdio.h>
float askhoursworked();
float askhourlyrate();
float calculategrosspay(float hours,float rate);
float calculatepayrolltax(float grosspay);
float calculatenetpay(float grosspay,float tax);
float displayallvalues(float ,float ,float,float ,float);
int main()
{
float hours;
float rate;
float grosspay;
float tax;
float netpay;
float values;
hours=askhoursworked();
rate= askhourlyrate();
tax= calculatepayrolltax(grosspay);
netpay= calculatenetpay(grosspay,tax);
grosspay=calculategrosspay(hours, rate);
values= displayallvalues(hours, rate, tax, grosspay, netpay);
return 0;
}
float askhoursworked()
{
float hours;
printf("\n Please enter hours worked \t");
scanf("%f",&hours);
return hours;
}
float askhourlyrate()
{
float rate;
printf("\n Please enter your payrate \t");
scanf("%f",&rate);
return rate;
}
float calculategrosspay(float hours,float rate)
{
float grosspay;
grosspay=hours*rate;
return grosspay;
}
float calculatenetpay(float grosspay,float tax)
{
float netpay;
netpay=grosspay-tax;
return netpay;
}
float calculatepayrolltax(float grosspay)
{
float tax;
tax=grosspay*.22;
return tax;
}
float displayallvalues(float hours,float rate,float tax,float grosspay,float netpay)
{
printf("\n Your total hours are %.2f",hours);
printf("\n Your hourly rate %.2f",rate);
printf("\n Your grosspay is %.2f",grosspay);
printf("\n Your taxes are %.2f",hours);
printf("\n Your netpay is %.2f",netpay);
}
格式是壞的 - 代碼不能被輕易讀取;( –
不要修改代碼以修復錯誤您收到的答案告訴你問題是什麼之後 –
請注意,您聲稱'displayallvalues( )'會返回一個值,但它不會,你不會使用不存在的結果賦值的變量,但這並不妨礙賦值是一個錯誤,函數應該定義爲返回'void'和'values'變量應該被移除,注意函數askhoursworked()應該同樣用'float askhoursworked(void)'和'askhourlyrate()'聲明(並且最好定義)。是這些函數的聲明,但沒有原型(C不是C++,規則不同) –