NCHU逸尘 2015-04-16 12:38 采纳率: 33.3%
浏览 2926
已采纳

C语言基础问题 .......

void main()
{
int b;
float a;
char c;

scanf("%f%d%c",&a,&b,&c);


if (b==90 && c=='m')
    printf("%.2f", a*6.95*0.95);
else
    if (b == 90 && c=='b')
        printf("%.2f", a*6.95*0.97);
    else
        if (b == 97 && c == 'm')
            printf("%.2f", a*7.93*0.95);
        else
            if (b == 97 && c == 'b')
                printf("%.2f", a*7.93*0.97);
            else
                if (b == 93 && c == 'm')
                    printf("%.2f", a*7.44*0.95);
                else
                    if (b == 93 && c == 'b')
                        printf("%.2f", a*7.44*0.97);

}
//假设现在90号汽油6.95元 / 升、93号汽油7.44元 / 升、97号汽油7.93元 / 升。
//为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
//请编写程序,输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m为自助服务,e为协助服务),计算并输出应付款(保留小数点后2位)。没报错啊....

  • 写回答

8条回答 默认 最新

  • danielinbiti 2015-04-16 13:27
    关注

    scanf("%f%d%c",&a,&b,&c);  //这种输入50 90 m是错误的,得输入50 90m要不c接收的不是m是空格
    改成
     scanf("%f,%d,%c",&a,&b,&c);//这样用逗号隔开不容易出错
     这样不容易输错
    
     另外协助服务是e不是b。如果自助服务不是这两个,你这里就不打印任何东西了。
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?