这题主要是用if else if来判断输出语句就行,还挺简单的,代码可以参考这个
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double price;
cin >> price;
double cost = 0.0;
// write your code here.......
double discount;
if (price >= 100 && price < 500)
{
discount = 0.9;
cost = price * discount;
}
else if (price >= 500 && price < 2000)
{
discount = 0.8;
cost = price * discount;
}
else if (price >= 2000 && price < 5000)
{
discount = 0.7;
cost = price * discount;
}
else if (price >= 5000)
{
discount = 0.6;
cost = price * discount;
}
cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;
return 0;
}
初学者刚开始看到
cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;
的时候可能会有些懵。
这段代码里的setiosflags(ios::fixed)意思是以定点格式显示浮点数值,而setprecision(1) 的意思是设置浮点数精度为1。
setiosflag的参数还有这些,大家可以看看了解一下,说不定以后会用到呢
setiosflags的参数是该流的格式标志值,这个值由如下位掩码(ios枚举器)指定,并可用位或OR(|)运算符进行组合:
ios::skipws 在输人中跳过空白。
ios::left 左对齐值,用填充字符填充右边。
ios::right 右对齐值;用填充字符填充左边(缺省对齐方式)。
ios::internal 在指定任何引导标记或基之后增加填充字符。
ios::dec 以基10(十进制)格式化数值(缺省进制)。
ios::oct 以基8(八进制)格式化数值。
ios::hex 以基16(十六进制)格式化数值。
ios::showbase 以C++编译器能读的格式显示数值常量。
ios::showpoint 对浮点数值显示小数点和尾部的0。
ios::uppercase 对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E。
ios::showpos 对于正数显示正号(+)。
ios::scientific 以科学格式显示浮点数值。
ios::fixed 以定点格式显示浮点数值。
ios::unitbuf 导致在每次插入之后ostream::osfx刷新该流。缺省地,cerr是缓冲的单元。
ios::stdio 导致在每次插入之后ostream::osfx刷新该流的stdout和stderr。

京公网安备 11010502036488号