运公司对用户计算运输费用。路程(s/km)越远,每吨千米运费越低
s < 250 没有折扣
250 ≤ s < 500 2%折扣
500 ≤ s < 1000 5%折扣
1000≤ s < 2000 8%折扣
2000 ≤ s < 3000 10%折扣
3000 ≤ s 15%折扣
小 tips:如果有很多想写的注释可以用这个/* */
我代码中的输入函数 scanf_s 是因为软件问题,你们复制代码过去记得把改输入函数改为 scanf
用 if 函数写:
思路:首先是遵循先定义,在用函数,定义 distance是路程,discount是折扣
然后就输入里程数,系统就会自动辨别在哪个区间 什么折扣
还有 puts 函数类似于 printf 函数但 puts 优点在于可以直接换行
#include<stdio.h>
int main() {
int distance;
int discount;
puts("请输入路程");
scanf_s("d%", &distance);
if (distance < 250) {
discount = 0;
}
else if (250 <= distance && 500 > distance) {
discount = 2;
}
else if (500 <= distance && 1000 > distance) {
discount = 5;
}
else if (1000 <= distance && 2000 > distance) {
discount = 8;
}
else if (2000 <= distance && 3000 > distance) {
discount = 10;
}
else if (distance >= 3000) {
discount = 15;
}
/* 注释这段用下面那段,当然这段也可以用,哈哈哈
discount = discount / 100;//折扣为百分比所以除以一百
printf("折扣是:%d",discount);
*/
printf("折扣是:%d", discount/100);//也可以写成这样方便很多
return 0;
}
用 swich 函数写:
这个就是利用里程数除以最低里程 250 得出1-12 就可以利用 swich---case (如下)
然后判断哪个区间有几个数字,就可以写了,相比上面 if 函数可以省略写掉不少代码
也直观很多,就运用了点逻辑 就方便了不少
还有后面得出来的折扣不是整型所以得加入 float 强制转换回浮点型
%.2f 是保留两位小数,如果是%f的话就默认是六位数,所以就会有很多0,为了简洁好看就保留两位小数
swich()
{
case 1;
break;
default;
break;
}
#include<stdio.h>
int main() {
int distance;//路程
int discount;//折扣
puts("请输入路程");
scanf_s("%d", &distance);
/*
路程/250---diatance/250
csae ; 0
1
2 3
4 5 6 7
8 9 10 11
12
*/
switch (distance/250)
{
case 0:
discount = 0;
break;
case 1:
discount = 2;
break;
case 2:
case 3:
discount = 5;
break;
case 4:
case 5:
case 6:
case 7:
discount = 8;
break;
case 8:
case 9:
case 10:
case 11:
discount = 10;
break;
default://大于等于3000
discount = 15;
break;
}
printf("折扣是:%.2f", (float)discount / 100);
//保留两位小数不然后面会有很多个0
//除以一百后折扣就不是整型了,所以加入一个float强制转换
return 0;
}
本文含有隐藏内容,请 开通VIP 后查看