折折星 发表于 2022-10-4 17:27:44

请问为什么会计算出错

我的代码如下
#include <stdio.h>

int main()
{
    double w;
    double cost;

    printf("请输入月用电量(千瓦时):");
    scanf("%lf",&w);

    if(w<0){
      printf("Invalid Value!");

    }
    else if(0<=w<50){
      cost=0.53*w;
      printf("应支付电费:%f",cost);
    }
    else{
      cost=0.53*w+0.05*(w-50);
      printf("应支付电费:%f",cost );
    }

    return 0;



}
当输入大于50的数字时,结果会出现问题,不准确

jackz007 发表于 2022-10-4 17:29:37

本帖最后由 jackz007 于 2022-10-4 17:32 编辑

         C 语言不允许这样写
else if(0<=w<50){
         应该改为
else if(w >= 0 && w < 50){
         此外
      printf("应支付电费:%lf",cost) ;// double 对应的格式描述符是 "%lf"
. . . . . .
      printf("应支付电费:%lf",cost ) ; // double 对应的格式描述符是 "%lf"

dolly_yos2 发表于 2022-10-4 17:38:20

jackz007 发表于 2022-10-4 17:29
C 语言不允许这样写

         应该改为


printf 里 double 对应的描述符就是 f ,没有 lf 一说( lf 中的 l 不产生任何效果)
页: [1]
查看完整版本: 请问为什么会计算出错