题解 | #计算商品打折结算金额#
计算商品打折结算金额
https://www.nowcoder.com/practice/055a92b5c93f497291a58c232f59fae9
这题主要是用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。
本专栏为C++的一些知识见得。