#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有一个错误,我不知道为什么。关于我做错了什么的任何想法?我还在学习如何调用函数,所以如果我正确调用函数,有人能告诉我吗?
答案 0 :(得分:1)
使用std::setprecision
时需要#include <iomanip>
。
此外,您正在发送pizza price
作为参考,这意味着您实际上是在每次函数调用时更改它的值。然后,在calculate_bill()
的最后一个语句中重新计算它,这是错误的。尝试调用所有功能,但只显示main()
的价格。
顺便说一句,你肯定意味着pizza_price *= 1.085;
和pizza_price *= 1.15
不是吗?否则,每个披萨的价格都会下降得非常快。我们可能会喜欢,但绝对不是你的教授..