Mrzhengdingwan 发表于 2022-4-3 18:05:38

代码求勘误

/********************
大佬们,以下是我做的一个switch语句练习题,但是运行的结果一直不对,请问是哪里的问题?
习题:为快递公司编写总价计算程序,路程(s)越远,每公里运费越低。折扣标准如下:
s<250km                   没有折扣
250km≤s<500km      2%折扣
500km≤s<1000km   5%折扣
1000km≤s<2000km   8%折扣
2000km≤s<3000km   10%折扣
3000km≤s                  15%折扣
设每公里每吨货物基本运费为p,货物重为w,距离为s,折扣为d,则总运费f为:
f=p*w*s*(1-d)
********************/
#include<stdio.h>

void main()
{
        int a,s;
        double p,w,d,f;
        w=30.0;
        p*0.8;
        printf("请输入运送距离:\n");
        scanf("%d",&s);       
        a=s/250;
        switch(a)
        {
        case 0:d=0;break;
        case 1:d=0.02;break;
        case 2:d=0.05;break;
        case 3:d=0.05;break;
        case 4:d=0.08;break;
        case 5:d=0.08;break;
        case 6:d=0.08;break;
        case 7:d=0.08;break;
        case 8:d=0.1;break;
        case 9:d=0.1;break;
        case 10:d=0.1;break;
        case 11:d=0.1;break;
        default :d=0.15;break;
        }
        f=p*w*s*1.0*(1-d*1.0);
        printf("总费用为:%8.2lf\n",f);
}

傻眼貓咪 发表于 2022-4-3 18:26:52

好奇的问,想知道是谁教你 void main() 的?

switch 参数是整型,而你的 a = s/250; 明显就有问题

Mrzhengdingwan 发表于 2022-4-3 18:42:13

傻眼貓咪 发表于 2022-4-3 18:26
switch 参数是整型,而你的 a = s/250; 明显就有问题

a和s都是int的呀0.0

傻眼貓咪 发表于 2022-4-3 18:44:11

Mrzhengdingwan 发表于 2022-4-3 18:42
a和s都是int的呀0.0

请问你的 p 的初始值是?
p*0.8 是什么意思?

Mrzhengdingwan 发表于 2022-4-3 18:47:10

傻眼貓咪 发表于 2022-4-3 18:44
请问你的 p 的初始值是?
p*0.8 是什么意思?

hhhhhhh大佬你发现了关键点...我想写p=0.8;来着
页: [1]
查看完整版本: 代码求勘误