2013-02-21 155 views
0

確定,所以我得到了我的硬編碼程序標記過,但不知道我做錯了什麼,這是我的計劃,是「硬編碼」在C++中硬編碼是什麼,以及如何解決這個問題?

cout << "Tax $" << (meal_price * guests) * TAX << endl; 
cout << "Tip $" << (meal_price * guests + meal_price * guests * TAX) * TIP << endl; 
cout << "Total $" << (meal_price * guests) + (meal_price * guests * TAX) + (meal_price * guests + meal_price * guests * TAX) * (TIP); 

如何在上面的語句硬編碼定義的一部分?它怎麼能不被硬編碼?感謝

+0

我猜'TIP'和'TAX'是常數,而你的老師期望他們是變量。此外,您應該將'(meal_price * guests)'存儲在一個變量中,因爲您正在重用該值。 – asheeshr 2013-02-21 03:46:16

+11

特別是這個問題沒什麼不對,但是在我的日子裏,當我們被標記下來並且不明白爲什麼時,我們與導師而不是互聯網交談。我可以想象,這仍然是今天最有效的方法。 – us2012 2013-02-21 03:50:50

回答

1

我沒有看到任何在這一節中「硬編碼」,但如果這是你的老師特別指出的部分,那麼他們很可能意味着他們想要的東西,如:

double total_price = meal_price * guests; 
double total_tax = total_price * TAX; 
double total_tip = total_price + total_tax * TIP; 
double total = total_price + total_tax + total_tip; 

std::cout << "Tax $" << total_tax << std::endl; 
std::cout << "Tip $" << total_tip << std::endl; 
std::cout << "Total $" << total << std::endl; 

因爲你的輸出線過於混亂,大部分(如果不是全部)計算應該在輸出線之外完成。

你應該挑釁地詢問你的導師,這是你得到的第一個機會,因爲他們將確切知道他們的意思以及如何解決它。

我注意到TAXTIP都是大寫,這是否意味着您使用#define來設置它們?
如果這樣可能會導致您的教練標記爲失敗。

相關問題