m0_66554936 2022-07-27 14:53 采纳率: 100%
浏览 95
已结题

为啥总是答案错误,这个测试点试了很多个方法都是答案错误

img

img


img

#include<stdio.h>
int main()
{
int a,b;
char c;
float g;
scanf("%d %d %c",&a,&b,&c);
if(c=='m')
{
if(b==90)
g=a0.956.95;
else if(b==93)
g=a0.957.44;
else if(b==97)
g=a0.957.93;
}
else
{
if(b==90)
g=0.97a6.95;
else if(b==93)
g=0.97a7.44;
else if(b==97)
g=0.97a7.93;
}
printf("%.2f",g);
return 0;
}

  • 写回答

5条回答 默认 最新

  • 滴水不穿石 2022-07-27 15:25
    关注

    不要使用单精度类型,直接用双精度浮点型,具体看修改过的代码。
    仅供参考!谢谢!

    img

    img

    #include<stdio.h>
    int main()
    {
        int a, b;
        char c;
        double g;
        scanf("%d %d %c", &a, &b, &c);
        if (c == 'm')
        {
            if (b == 90)
                g = a * 0.95 * 6.95;
            else if (b == 93)
                g = a * 0.95 * 7.44;
            else if (b == 97)
                g = a * 0.95 * 7.93;
        }
        else if (c == 'e')
        {
            if (b == 90)
                g = 0.97 * a * 6.95;
            else if (b == 93)
                g = 0.97 * a * 7.44;
            else if (b == 97)
                g = 0.97 * a * 7.93;
        }
        printf("%.2lf", g);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日