C语言程序之经典习题:运输公司对用户计算运输费用。路程(s/km)越远,每吨/千米运费越低。

发布于:2022-11-01 ⋅ 阅读:(454) ⋅ 点赞:(0)

运公司对用户计算运输费用。路程(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 后查看