C语言编写程序计算运费:f=p*w*s*(1-d)。(用switch语句实现)

该博客介绍用C语言编写程序计算运费,公式为f=pws*(1 - d),使用switch语句实现。根据不同的运输距离s有不同折扣,如s<250km无折扣等。同时提到因使用double类型变量,需对switch判断条件进行强制转换。

C语言编写程序计算运费:f=pws*(1-d)。(用switch语句实现)

s<250km 没有折扣

250<=s<500 2%折扣

500<=s<1000 5%折扣

1000<=s<2000 8%折扣

2000<=s<3000 10%折扣

3000<=s 15%折扣

实验代码:

#include <stdio.h>
int main()
{
	double price,weight,distance,discount;
	printf("请输入运输里程,运输物品重量,总花费价格:");
	scanf("%lf%lf%lf",&distance,&weight,&price);
	switch((int) distance/250)
	{
	case 0 : printf("运输的距离不足250km,享受不到折扣:");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 : discount=12;break;
	}
	printf("折扣后的费用为:%lf\n",price*weight*distance*(1-0.01*discount));
	return 0;
}

注意我们运用的是double类型的变量,所以我们需要对switch语句的里的判断条件,进行强制转换。

	switch((int) distance/250)
在C语言中,可以通过switch语句来处理不同类型的折扣,下面是一个简单的示例程序,用于根据货物重量、运输距离和折扣率来计算运费。 ```c #include <stdio.h> // 定义计算运费的函数 double calculateFreight(double p, double w, double s, double d) { double f = p * w * s - (1 - d); return f; } int main() { double p, w, s, d, f; // 假设输入的运费、重量、距离和折扣已经给定 printf("请输入每吨每千米的基本运费(p): "); scanf("%lf", &p); printf("请输入货物重量(w): "); scanf("%lf", &w); printf("请输入运输距离(s): "); scanf("%lf", &s); printf("请输入折扣率(d,例如0.2表示20%): "); scanf("%lf", &d); // 使用switch语句处理不同类型的折扣 switch((int)(d * 100)) { case 0: // 没有折扣 f = p * w * s; break; case 10: // 10%折扣 f = p * w * s * 0.9; break; case 20: // 20%折扣 f = p * w * s * 0.8; break; case 30: // 30%折扣 f = p * w * s * 0.7; break; // 其他折扣情况可以继续添加... default: f = p * w * s * (1 - d); // 使用通用公式计算 break; } printf("总运费: %.2f\n", f); return 0; } ``` 在这个程序中,我们首先定义了一个函数`calculateFreight`来计算运费,然后在`main`函数中通过用户输入获取基本运费、货物重量、运输距离和折扣率。使用`switch`语句根据折扣率的整数部分(即折扣率乘以100后的整数)来确定折扣类型,并计算最终的总运费。 注意:实际应用中折扣率的处理可能需要更复杂的逻辑,这里仅为示例简化了逻辑。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值