为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。
输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”
;若用电量小于0,则输出"Invalid Value!
"。
输入样例1:
10
输出样例1:
cost = 5.30
输入样例2:
100
输出样例2:
cost = 55.50
代码:
# include <stdio.h>
# include <stdlib.h>
int main(){
double used,cost;
scanf("%lf",&used);
if (used < 0 ) {
printf("Invalid Value!");
}else if (used <= 50) {
cost = 0.53 * used;
printf("cost = %.2lf",cost);
}else {
cost = 0.53 * 50 + (0.53 + 0.05) * (used - 50);
printf("cost = %.2lf",cost);
}
return 0;
}
提交截图:
注意事项:
编写分支选择程序的时候注意每一个条件后面的语句是否真的按照你所想的那样归属于对应的条件,所以一般建议使用{}
将每个条件后的语句括起来,这样可读性会好一点,错误率也能有效减少,尤其是大量代码的时候!
另外else if
后面的条件是上面的if
条件的补集,即若if (x < 0
执行else if (x < 2)
其实后面已经涵盖了隐含的条件x >= 0
,因为如果程序满足了上面的x < 0
则根本不会执行else if
的条件判断!