初始C语言——运费问题

问题描述:
某快递公司根据投送目的第距离公司的远近,将全国划分为5个区域:

0区:同城
1区:临近两省
2区:1500公里(含)以内
3区:1500—2500公里
4区:2500公里以上
快递费按照邮件重量计算,由起重费用、续费费用两部分构成,具体计算方法如下:
(1)起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费;
(2)同城起重资费10元,续重3元/公斤;
(3)寄往1区的邮件,起重资费10元,续重4元;
(4)寄往其他地区的邮件,起重资费统一为15元。续重:
2区:5元/公斤;3区:6.5元/公斤;4区:10/公斤。
输入:区域编码 重量
输出:运费
计算结果保留两位小数
邮件重量应大于0公斤,区域编码不能超过0–4的范围,否则输出:输入有误。
#define _CRT_SECURE_NO_WARNINGS 1
//防止visual studio2013以上版本scanf报错,vc6.0环境可忽略
#include<stdio.h>
int main()
{
int area, wt;
float weight, sum;
int b;
printf(“请输入要寄快递的 区域:\n”);
scanf(“%d”, &area);
if (area < 0 || area>4 ) {
printf(“您输入的区域不对哦!\n”);
printf(“请重新输入\n”);
}
printf(“请输入快递物品的重量\n”);
scanf(“%f”, &weight);
if (weight <= 0)
{
printf(“您所输入的重量不对\n”);
printf(“请重新输入”);
}
printf(“收费方式:\n”);
printf(“起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算)。\n”);
printf(“超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费。\n”);
b = weight;
if (weight < 1)
wt = 1;
else if (weight - b > 0)
wt = b + 1;
else wt = b;
wt -= 1;
switch (area) {

case 0:
	printf("同城起重资费10元,续重3元/公斤\n");
	sum = 10 + wt * 3; break;
case 1:
	printf("寄往1区的邮件,起重资费10元,续重4元/公斤");
	sum = 10 + wt * 4; break;
case 2:
	printf("起重资费15元,续重5元/公斤");
	sum = 15 + wt * 5; break;
case 3:
	printf("起重资费15元,续重6.5元/公斤");
	sum = 15 + wt * 6.5; break;
case 4:
	printf("起重资费15元,续重10元/公斤");
	sum = 15 + wt * 10; break;
}
printf("您的快递费用为:%.2f元\n", sum);
return 0;

}
这里我说明一下为什么要int b和b=weight;
很简单,weight是float类型,b是int类型,假设weight=5.5,则赋值给b为5,这样可以很好的计算不足1公斤的续费问题。
在这里插入图片描述

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值