2、设计一个快递费按邮件重量计算, 由起重费用、续重费用两部分构成: (1)起重(首重)1公斤按起重资费计算(不足1公斤, 按1公斤计算),超过首重的重量,按公斤(不足1公斤, 按1公斤计算)收取续重费; (2)同城起重资费10元,续重3元/公斤; (3) 寄往1区(江浙两省)的邮件,起重资费10元,续重4元; (4) 寄往其他地区的邮件,起重资费统一为15元。而续重部分, 不同区域价格不同:2区的续重5元/公斤,3区的续重6.5元/公斤, 4区的续重10元/公斤。C语言怎么实现?
时间: 2024-03-17 14:45:55 浏览: 519
C实训2014答案
可以使用C语言中的if语句和switch语句实现快递费的计算,示例代码如下:
```c
#include <stdio.h>
int main() {
int weight, zone;
double price, cost;
printf("请输入邮件重量(单位:公斤):");
scanf("%d", &weight);
printf("请输入邮寄区域(1-4):");
scanf("%d", &zone);
if (weight <= 0) {
printf("邮件重量必须大于0!\n");
return 0;
}
// 计算起重费用
if (weight <= 1) {
if (zone == 1) {
price = 10;
} else {
price = 15;
}
} else {
if (zone == 1) {
price = 10 + 4 * (weight - 1);
} else {
price = 15 + 3 * (weight - 1);
}
}
// 计算续重费用
switch (zone) {
case 1:
cost = 4;
break;
case 2:
cost = 5;
break;
case 3:
cost = 6.5;
break;
case 4:
cost = 10;
break;
default:
printf("邮寄区域选择错误!\n");
return 0;
}
cost *= weight - 1;
// 计算总费用
double total = price + cost;
printf("您需要支付 %.2lf 元快递费。\n", total);
return 0;
}
```
该代码中先通过scanf函数获取邮件重量和邮寄区域,然后根据公式计算起重费用和续重费用,最后将二者相加得到总费用,并输出。注意要对用户输入的数据进行合法性判断,例如邮件重量必须大于0,邮寄区域必须在1-4之间等。
阅读全文