目前主要分为三个专栏,后续还会添加:
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
牛牛商场促销活动:
满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