牛客网刷题 | BC65 计算商品打折结算金额

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


描述

牛牛商场促销活动:

满100打9折;

满500打8折;

满2000打7折;

满5000打6折

牛阿姨算不清楚自己应该付多少钱,请你帮忙算一下

输入描述:

牛阿姨购买商品打折前的总金额

输出描述:

参加活动后,牛阿姨购买商品应付金额。(保留小数点后1位) 


思路:

题目要求:计算商品打折后的价格

思路:首先要理清楚价格的范围是多少

比如第一个条件,小于等于100并且小于500才能打九折

千万不能把 sum<500 写成 sum<=500

这样的话结果就不对了


代码1:

/*     2024年4月27日23:39:48
        题目要求:计算商品打折后的价格
        思路:首先要理清楚价格的范围是多少
        比如第一个条件,小于等于100并且小于500才能打九折
        千万不能把 sum<500 写成 sum<=500
        这样的话结果就不对了                             */    

# include <stdio.h>
int main()

{
    float sum = 0;
    scanf("%f", &sum);

    if (sum >= 100&& sum<500)
        printf("%.1f", sum * 0.9);
    else if (sum >= 500&&sum<2000)
        printf("%.1f", sum * 0.8);
    else if (sum >= 2000&&sum<5000)
        printf("%.1f", sum * 0.7);
    else if (sum >= 5000)
        printf("%.1f", sum * 0.6);
    return 0;
}

 代码2:

#include<stdio.h>
int main()
{
    float n,result = 0;
    scanf("%f",&n);
    
    result = n >= 100 ? n * 0.9 : n;
    result = n >= 500 ? n * 0.8 : result;
    result = n >= 2000 ? n * 0.7 : result;
    result = n >= 5000 ? n * 0.6 : result;  //目前为止写的比较满意的代码了,挺简洁的;
    
    printf("%.1f",result);
    return 0;
}

扩展:

条件运算符 ? :

Exp1 ? Exp2 : Exp3;

其中,Exp1、Exp2 和 Exp3 是表达式。请注意冒号的使用和位置。? : 表达式的值取决于 Exp1 的计算结果。

如果 Exp1 为真,则计算 Exp2 的值,且 Exp2 的计算结果则为整个 ? : 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,且 Exp3 的计算结果则为整个 ? : 表达式的值。

? 被称为三元运算符,因为它需要三个操作数,可以用来代替如下所示的 if-else 语句:

if(condition){
   var = X;
}else{
   var = Y;
}

 例如,请看下面这段代码:

if(y < 10){ 
   var = 30;
}else{
   var = 40;
}

上面的代码可以写成以下语句:

var = (y < 10) ? 30 : 40;

 在这里,如果 y 小于 10,则 var 被赋值为 30,如果 y 不小于 10,则 var 被赋值为 40。请看下面的实例:

C语言代码实例:

#include<stdio.h>
int main(void)
{		
   int a = 0, b = 0, c = 0;
   printf("请输入两个数:\n");
   scanf_s("%d %d", &a, &b);
   c = (a > b ? a : b);
   printf("较大的数为:%d\n", c);
   return 0;
}

输出:

请输入两个数:
50 100
较大的数为:100

 

C++实例:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int x, y = 10;
 
   x = (y < 10) ? 30 : 40;
 
   cout << "value of x: " << x << endl;
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

value of x: 40

  

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值