浙大版《C语言程序设计(第3版)》题目集
习题2-2 阶梯电价 (15 分)
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量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>
int main(){
int n=0;
double cost=0;
scanf("%d",&n);
if(n<=50){
cost=0.53*n;
printf("cost = %.2f",cost);
}else{
cost=0.53*50+0.58*(n-50);
printf("cost = %.2f",cost);
}
if(n<0)
printf("Invalid Value!");
return 0;
}
Invalid Value!输出不了,嵌套有问题,不能这样用,因为else已经包含了小于0的情况
正式版本
#include <stdio.h>
int main(){
int n=0;
double cost=0;
scanf("%d",&n);
if(n<=0){
printf("Invalid Value!");
}else{
if(n<=50&&n>0){
cost=0.53*n;
}else{
cost=0.53*50+0.58*(n-50);
}
printf("cost = %.2f",cost);
}
return 0;
}
结论:
- 可以将2处相同的print写在同一个if内的最后来输出
- 联系了嵌套循环