新生小白的求助
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量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>//这是我的代码,在PTA上还错了一个调试点。是小于0的调试点。求助。
int main(void)
{
int e;
float money;
scanf("%d",&e);
if (e>50)
{
money=26.5+(e-50)*0.58;
}
else if (e>=0)
{
money=0.53*e;
}
else
{
printf("Invalid Value!");
}
printf("cost = %.2f",money);
return 0;
} 楼主,下面的代码难道不能解决你的问题吗?怎么还在发帖求助呀?
#include<stdio.h>
int main(void)
{
int e ;
float money ;
scanf("%d" , & e) ;
if(e >= 0) {
money = (e > 50) ? 0.58 * e - 0.05 * 50 : 0.53 * e ;
printf("cost = %.2f\n" , money) ;
} else {
printf("Invalid Value!\n") ;
}
}
我想看一下我错哪啦{:5_109:},不过也很感激你~ jackz007 发表于 2019-10-14 10:44
楼主,下面的代码难道不能解决你的问题吗?怎么还在发帖求助呀?
请问你那个代码,问号那里是个判断吗?
它的具体用法是咋样的,
是if() {? :}吗
我没有见过这样子的代码 但是在一次考试中见到了,
求指点 fabvy12 发表于 2019-10-14 10:54
我想看一下我错哪啦,不过也很感激你~
你的代码基本也对,问题的关键是没有把 e 值的有效性与输出信息统一起来。导致在 e 值无效的情况下,还在输出 cost 信息。
按你的写法,如果把显示 cost 信息的语句搬到计算 money 的两个语句之后,像这样:
if (e > 50){
money = 26.5 + (e - 50) * 0.58 ;
printf("cost = %.2f",money) ;
} else if (e >= 0) {
money = 0.53 * e ;
printf("cost = %.2f",money) ;
} else {
printf("Invalid Value!") ;
}
也应该是没有问题的。 jackz007 发表于 2019-10-14 11:24
你的代码基本也对,问题的关键是没有把 e 值的有效性与输出信息统一起来。导致在 e 值无效的情 ...
嗯没错,我刚刚也是这样改了,不过还是你那种好,这个好像不符合单出口 fabvy12 发表于 2019-10-14 11:13
请问你那个代码,问号那里是个判断吗?
它的具体用法是咋样的,
是if() {? :}吗
这是 C 语言里的三目运算符:
a = (x > y)? x : y ;
这个表达式的执行结果将把 x ,y 两个变量中,数值较大那个的值赋值给变量 a,它的逻辑基本上就是:
if (x > y) a = x ;
else a = y ; jackz007 发表于 2019-10-14 11:31
这是 C 语言里的三目运算符:
a = (x > y)? x : y ;
这个表达式的执行结果将把 x...
呃呃,看不懂。笑哭笑哭
页:
[1]