描述
浙江省从2012年7月1日起执行新的阶梯电价标准,具体如下:从每年1月1日开始,执行一个新的计费周期;
(1)全年累计用电量少于2760度(千瓦时,下同)的,按每度0.538元执行;
(2)全年累计用电量超过2760度,但低于4800度的部分,每度在基础电价上加价0.05元,即每度电0.588元;
(3)全年累计用电量超过4800度的部分,每度加价0.30元,即每度0.838元。
现输入两个数字:第一个数字代表前10个月用电量总和,后一个代表11月用电量,能够正确输出11月的电费金额(保留两位小数)。
输入格式
2700 200
输出格式
114.60
输入样例
4700 200
输出样例
142.60
实验分析:
此题为计算电费,收费标准为阶梯收费,期间若只是用if-else语句,会是代码冗余度高(重复使用相同代码),可使用函数进行简化,即写一个收费的函数。
代码实现:
#include <stdio.h>
double pay(double d){ //定义支付函数,d为用电量
if(d < 2760) //用电量小于2760时,每度电0.538元
return d * 0.538; //返回电费
else if(d < 4800) //用电量大于等于2760小于4800
return 1484.88 + (d-2760) * 0.588; //返回2760内的电费加上超出2760的部分每度电0.588的电费和
else return 2684.4 + (d-4800) * 0.838; //用电量大于等于4800时,返回4800度的电费加上超出部分的电费和
}
int main(void){
double a, b, sum; //a为前面十个月的用电量的和,b为11月的用电量
scanf("%lf %lf",&a, &b);
sum = a + b; //11个月的用电量总和
double cost = pay(sum) - pay(a); //调用函数,用总电量的费用减去前十个月的电费,最终费用为第11月的电费
printf("%.2f",cost); //输出第11月的电费
return 0;
}
谢谢浏览!