2014-06-25 91 views
-8

員工每小時工作時間爲9.73小時,工作時間長達40小時。任何時間都是按照1倍和1/2倍的時間支付的。計算超時費用是我的公式是否正確?

我對這句話的算法「任何時間都是以1.5倍的時間支付。」是讓我困惑的那個。

下面是代碼:

double hours, overtimepay, overtimehours, wage; 
printf("Enter number of hours: ") 
scanf("%f",&hours); 

wage=9.73*hours; 
overtimehours=hours-40; 
overtimepay=(9.73*overtimehours)*1.5); 

if(hours>40){ 
printf("Your wage is: %f",wage); 
printf("Your overtime pay is: %f",overtimepay); 
} 

else{ 
printf("Your wage is: %f",wage); 
} 

上我將如何計算加班工資或速度我很困惑。 1和1/2相當於1.5(如果我沒有弄錯)。因此,這裏是我的公式:

overtimepay=(9.73*overtimehours)*1.5); 

因爲我overtimehours是從40小時,其中,例如,如果我在43個小時中鍵入,43-40 = 3所以有3小時的加班時間減去小時。這三個小時將乘以9.73和1.5。把9.73,超時和1.5加在一起是正確的嗎?或者只是超時和1.5?

+1

爲什麼你要問我們,如果它的正確與否?你運行和測試自己? PS:對我來說看起來是正確的,我唯一要改變的是在'if(hours> 40)'塊中添加'overtimehours'和'overtimepay',因爲如果小時數小於40,那麼計算沒有意義加班費。 –

+1

你正在加倍計算加班時間。加班時間的「工資」不應包括9.73。 –

+0

其correct..what的問題?你應該寫'overtimepay =(9.73 * overtimehours)* 1.5;'如果沒有錯字.. 也'工資+ = overtimepay' – rock321987

回答

0

你計算好了(畢竟沒有那麼複雜!),我只是建議修改你的條件語句,以減少一點代碼:

double hours, overtimepay, wage; 
printf("Enter number of hours: ") 
scanf("%f",&hours); 

wage=9.73*hours; 
wage = 9.73 * hours; 

printf("Your wage is: %f\n",wage); 

if(hours > 40) 
{ 
    overtimepay = (9.73*(hours-40))*1.5; 
    printf("Your overtime pay is: %f\n", overtimepay); 
}