c语言,不知道为什么会出错,大家帮忙检查一下,运行结果是如图所示。 - 爱问答

(爱问答)

c语言,不知道为什么会出错,大家帮忙检查一下,运行结果是如图所示。

/*计算油费:假设现在90号汽油价格为6.95元/升,93号汽油价格为7.44元/升,97号汽油价格为7.93元/升。为了吸引顾客,某自动加油站推出了“自动服务”和“协助服务”两个服务等级可分别得到5%,3%的折扣。编写程序,输入顾客的加油量a,汽油品种b和服务类型c(m为自动服务,e为协助服务),计算并输出应付款。*/

#include<stdio.h>

int main ()

{

double litre,discount,price,cost;

int gas;

char service;

printf("90# 6.95元/升 ");

printf("93# 7.44元/升 ");

printf("97# 7.93元/升 ");

 printf("Enter Litre ");

scanf("%lf",&litre);

printf("Choice gas kinds ");

scanf("%d",&gas);

 printf("m:自动服务 5% discount ");

printf("e:协助服务 3% discount ");

 printf("Choice service kinds ");

scanf("%c",&service);

switch(gas)

{

case 90:price=6.95;break;

case 93:price=7.44;break;

case 97:price=7.93;break;/*注意,case后面出现的应该是一个常量表达式。*/

}

if(service=='m')

discount=0.05;

else

discount=0.03;

cost=litre*price*(1-discount);

printf("cost=%.2lf ",cost);

return 0;

}

c语言,不知道为什么会出错,大家帮忙检查一下,运行结果是如图所示。

这个是个常识性问题

scanf的%d会在输入缓冲留下回车的,你再用

scanf("%c",&service);

此处的service会得到回车

解决两个方案

1,是在"%c"前加空格,改为

scanf(" %c",&service);

2.是在scanf("%c",&service);加

fflush(stdin);

(个人推荐用第二种,即使前面输入出错,它也会让你输入下面的内容的)


相关标签:c语言

下一篇:VisualStudio2012是用的netframework4.几?

上一篇:python中文字符串怎么使用count

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?