代码在最后一个函数中有错误

时间:2016-03-10 13:40:04

标签: c++

#include <iostream>
using namespace std;
void calculate_bill(double& pizza_price);

int main()
{
cout << "Welcome to Domino's Pizzaria!\n";
cout << "\nEnter the price of the pizza: ";
double price;
cin >> price;
calculate_bill(price);

}

void add_tax(double& pizza_price)
{
pizza_price *= 0.085;

}
void calculate_tip(double& pizza_price)
{
pizza_price *= 0.15;

}


void calculate_bill(double& pizza_price)
{
add_tax(pizza_price);
calculate_tip(pizza_price);
double price = pizza_price * add_tax * calculate_tip;

cout << "The pizza with taxes and tip, your total comes to " << "$" << fixed << setprecision(2) << price;
}

输出应该是这样的:

欢迎来到Domino的Pizzaria!

输入披萨的价格:12.99

带税和小费的披萨,你的总额达到16.21美元

问题是,每次运行代码时,我都会在“void calculate_bill”中出错。它还说我在setprecision有一个错误,我不知道为什么。关于我做错了什么的任何想法?我还在学习如何调用函数,所以如果我正确调用函数,有人能告诉我吗?

1 个答案:

答案 0 :(得分:1)

使用std::setprecision时需要#include <iomanip>

此外,您正在发送pizza price作为参考,这意味着您实际上是在每次函数调用时更改它的值。然后,在calculate_bill()的最后一个语句中重新计算它,这是错误的。尝试调用所有功能,但只显示main()的价格。

顺便说一句,你肯定意味着pizza_price *= 1.085;pizza_price *= 1.15不是吗?否则,每个披萨的价格都会下降得非常快。我们可能会喜欢,但绝对不是你的教授..