鲸悦海 发表于 2021-10-10 23:54:48

来大佬看看这个咋错了

Pta上的题
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。

输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。

输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

下面i你是我写出来错误的程序:
#include <stdio.h>
int main(void)
{
    double e, cost;
    scanf("%lf", e);
   
    if(e>0){
      if(e<=50){
            cost=e*0.53;
            printf("cost = %.2f", cost);
      }else{
            cost=50*0.53+(e-50)*0.58;
            printf("cost = %.2f", cost);
      }
    }else{
      printf("Invalid Value!");
    }
    return 0;
}
后面我这样写提交对了:
#include <stdio.h>
int main (void)
{
        double cost, e;
        scanf("%lf", &e);
        if(e>0){
                if(e<=50){
                        cost=e*0.53;
                }else{
                        cost=50*0.53+(e-50)*0.58;
                }printf("cost = %.2f", cost);
        }else{
                printf("Invalid Value!");
        }
        return 0;
}
帮看看第一个那不对,为啥错,第二个为啥对?

jhq999 发表于 2021-10-11 05:48:29

scanf("%lf", e);
scanf("%lf", &e);

傻眼貓咪 发表于 2021-10-11 10:25:19

#include <stdio.h>

int main(){
   
    int kW;
    float cost = 0;
   
    // 输入某用户的月用电量(单位:千瓦时)
    scanf("%d", &kW);
   
    // 计算电费值(元)
    if(kW>50) cost += (0.53*50+(kW-50)*0.58);
    else if(kW>0) cost += (0.53*kW);
   
    // 输出结果保留两位小数
    if(cost) printf("cost = %.2f元", cost);
    else printf("Invalid Value!");
    return 0;
}

鲸悦海 发表于 2021-10-11 12:59:30

jhq999 发表于 2021-10-11 05:48
scanf("%lf", e);
scanf("%lf", &e);

害,谢谢,太大意了哈哈

鲸悦海 发表于 2021-10-11 13:01:55

傻眼貓咪 发表于 2021-10-11 10:25


你的代码怎么弄的,还能直接复制。求教

傻眼貓咪 发表于 2021-10-11 13:28:35

留言区上面有个 <> 符号,贴上你的代码便可

鲸悦海 发表于 2021-10-12 00:14:31

傻眼貓咪 发表于 2021-10-11 13:28
留言区上面有个符号,贴上你的代码便可

学到了
页: [1]
查看完整版本: 来大佬看看这个咋错了