题解 | #计算商品打折结算金额#

计算商品打折结算金额

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++知识分享 文章被收录于专栏

本专栏为C++的一些知识见得。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
评论
10
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务