设每吨每千米货物的基本运费为p.货物重为w,距离为s.折扣为d.则总 运费f的计算公式为:← f=p-w'S-(1-d) 尝试编写一个程序用于计算总运费。要求用 switch语句来实现 使用 c 语言。
时间: 2024-09-09 17:11:19 浏览: 17
在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后的整数)来确定折扣类型,并计算最终的总运费。
注意:实际应用中折扣率的处理可能需要更复杂的逻辑,这里仅为示例简化了逻辑。