| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 72 人关注过本帖
标题:我的程序错在哪了
只看楼主 加入收藏
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2019-11-6
结帖率:100%
  已结贴   问题点数:10  回复次数:2   
我的程序错在哪了
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。

本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。

输入格式:
输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。

输出格式:
在一行中输出应付款额,保留小数点后2位。

输入样例:
40 97 m
输出样例:
301.34

int main()
{
  int a,b,k;
  char c;
  double zhe,s;
  scanf("%d %d %c",&a,&b,&c);
  if(b==97)
    {k=7.93;
    if(c=='m')
    zhe=0.95;
    else
    zhe=0.97;}
    s=1.0*a*k*zhe;

  if(b==90)
    {k=6.95;
    if(c=='m')
    zhe=0.95;
    else
    zhe=0.97;}
    s=1.0*a*k*zhe;

  if(b==93)
  {k=7.44;
    if(c=='m')
    zhe=0.95;
    else
    zhe=0.97;}
    s=1.0*a*k*zhe;

    printf("%.2lf",s);
    return 0;
}
搜索更多相关主题的帖子: 输入 服务 格式 输出 int 
2019-11-16 23:03
纯蓝之刃
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:176
专家分:928
注 册:2019-7-29
  得分:0 
因为你变量k定义成了int型,计算的时候k的值为7,把k设置成double型就行了
2019-11-16 23:53
纯蓝之刃
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:176
专家分:928
注 册:2019-7-29
  得分:10 
使用switch会更简洁一些
程序代码:
#include <stdio.h>

int main()
{
    int b;
    char c;
    double a,zhe,s,k;
    scanf("%lf %d %c",&a,&b,&c);

    switch(b)
    {
        case 97:k=7.93;break;
        case 90:k=6.95;break;
        case 93:k=7.44;break;
        default:break;
    }

    if(c=='m')
        zhe=0.95;
    else
        zhe=0.97;

    s=a*k*zhe;

    printf("%.2lf",s);
    return 0;
}
2019-11-16 23:56
快速回复:我的程序错在哪了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063805 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved