2017-04-25 46 views
0

如果一個人的收入很低(< = 25,000)且諮詢時間少於或等於30分鐘,則不收費;否則,服務費爲30分鐘以上的正常小時費率的40%。作爲整數值除法的結果,得到兩倍

對於其他人,如果諮詢時間少於或等於20分鐘,則不收取服務費;否則,服務費爲超過20分鐘時間的正常小時費率的70%。

(例如,假設一個人有收入低和花費1小時15分鐘,每小時速率爲$ 70.00,然後將計費量是70.00 * 0.40 *(六十〇分之四十五)= $ 21,00。)

用C++編寫一個程序,提示用戶輸入小時費率,總諮詢時間以及該人是否收入較低。該計劃應輸出計費金額。

這是我迄今爲止所做的,程序看起來對我來說是正確的,但由於某種原因,我沒有得到正確的輸出。我得到0.00這是一個錯誤的輸出值。

#include<iostream> 
#include <iomanip> 
using namespace std; 

double calculateBill(int income, int consultingMinutes, double hourlyRate); 

int main() 
{ 
    int income; 
    double consultingMinutes; 
    double hourlyRate; 

    cout << "Please enter the clients income: $" ; 
    cin >> income; 

    cout << "Please enter the consulting time in minutes: "; 
    cin >> consultingMinutes; 

    cout << "Please enter the hourly rate: $"; 
    cin >> hourlyRate; cout << fixed << showpoint << setprecision(2); 

    cout << "Your total bill ammount comes to: $" << calculateBill(income, consultingMinutes, hourlyRate) << endl; 

    return 0; 
} 

double calculateBill(int income, int consultingMinutes, double hourlyRate) 
{ 
    if (income <= 25000) { 
     if (consultingMinutes <= 30) 
      return 0; 
    else 
     return hourlyRate * 0.40 * ((consultingMinutes - 30)/60); 
    } 
    else { 
     if (consultingMinutes <= 20) 
      return 0; 
     else 
      return hourlyRate * 0.70 * ((consultingMinutes - 20)/60); 
    } 
} 
+1

評論整數除法用C如何工作++。 – jwimberley

+0

@jwimberley剛剛意識到這一點。這是導致錯誤的變量consultingMinutes的數據類型。感謝您的高舉。 – Jarajanta

回答

0

整數和浮點數的混合並不是一件好事。試試這個:

return hourlyRate * 0.40 * (((double) consultingMinutes - 30.0)/60.0); 

,而不是這樣的:

return hourlyRate * 0.40 * ((consultingMinutes - 30)/60); 

(並應用相同的修爲第二錯了地方return hourlyRate * 0.70 * ((consultingMinutes - 20)/60);