CCF NOI1010 邮寄包裹
问题链接:CCF NOI1010 邮寄包裹。
时间限制:
1000 ms 空间限制: 262144 KB
题目描述
某邮局对邮寄包裹有如下规定:若包裹的重量超过30千克,不予邮寄,对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的结果:
重量(千克) 收费标准(元/公斤)
wei<=10 0.80
10<wei<=20 0.75
20<wei<=30 0.70
请你编写一个程序,输入包裹重量,输出所需费用或”Fail”表示无法邮寄。
输入
输入一个正整数,表示邮寄包裹的重量。
输出
输出对应的费用(答案保留2位小数)或“Fail”表示无法邮寄。
样例输入
7
样例输出
5.80
数据范围限制
问题分析
这是一个条件判定问题。
另外一种做法是,将原始数据放入数组中,程序逻辑将略有不同。
程序说明
使用嵌套的if语句,即if else if ...语句进行条件判定处理。
程序中,原始数据用符号变量定义。
要点详解
- 多分支的条件可以使用嵌套的if语句进行描述。
100分通过的C语言程序:
#include <stdio.h> #define RANGE1 10 #define RANGE2 20 #define RANGE3 30 #define PRICE1 0.80 #define PRICE2 0.75 #define PRICE3 0.70 #define FEE 0.20 int main(void) { int w; scanf("%d", &w); if(w <= RANGE1) printf("%.2f\n", FEE + w * PRICE1); else if( w <= RANGE2) printf("%.2f\n", FEE + RANGE1 * PRICE1 + (w - RANGE1) * PRICE2); else if( w <= RANGE3) printf("%.2f\n", FEE + RANGE1 * PRICE1 + (RANGE2 - RANGE1) * PRICE2 + (w - RANGE2) * PRICE3); else printf("Fail\n"); return 0; }