问题描述:这家大学书店每年10月24日举行千字节日销售,如果价格低于128美元,则对所有计算机配件的购买均提供8%的折扣,如果价格至少为128美元,则提供16%的折扣。编写一个程序,要求收银员提供原始价格,然后打印折扣价。
我正在尝试解决此问题。我在第24行中遇到错误。
#include <iostream>
using namespace std;
int main()
{
double original_price;
double discount_rate;
double discount_price;
cout << "Enter Original Price:" << endl;
cin >> original_price;
//cout << original_price << endl;
if (original_price < 128)
{
discount_rate = 0.92;
}
else
{
discount_rate = 0.84;
}
double discounted_price = discount_rate * original_price << endl;
cout << "discounted_price: " << discounted_price;
return 0;
}
错误:无法解析对重载函数的引用;你是想打电话吗?
答案 0 :(得分:2)
以下行格式不正确:
double discounted_price = discount_rate * original_price<<endl;
std::endl
与std::cout
一起使用以结束一行并刷新输出。您只能在输出流上实际调用operator<<(std::endl)
,而不能在double
上调用。实际上,尝试以这种方式将行尾附加到数值上并没有真正的意义。
请执行以下操作:
double discounted_price = discount_rate * original_price;
cout << "discounted_price: "<< discounted_price << endl;
这将计算折价,然后使用std::endl
打印它,以添加换行符并刷新标准输出流。
答案 1 :(得分:2)
好得多,但您仍然将endl
放在错误的位置。
double discounted_price = discount_rate * original_price<<endl;
cout << "discounted_price: "<< discounted_price;
应该是
double discounted_price = discount_rate * original_price;
cout << "discounted_price: "<< discounted_price << endl;
endl
是一种输出操作,用于在输出中添加换行符,在进行计算时它没有位置。