在C++中硬编码是什么,以及如何解决这个问题?

问题描述:

确定,所以我得到了我的硬编码程序标记过,但不知道我做错了什么,这是我的计划,是“硬编码”在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

我没有看到任何在这一节中“硬编码”,但如果这是你的老师特别指出的部分,那么他们很可能意味着他们想要的东西,如:

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来设置它们?
如果这样可能会导致您的教练标记为失败。