一段简单的C语言,但不知道哪里出了问题

题目是这样子的:

某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。

输入格式:

输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。

输出格式:

在一行输出该员工的周薪,精确到小数点后2位。

输入样例1:

5 40

输出样例1:

2000.00

输入样例2:

3 50

输出样例2:

1650.00

我写的程序是这样子的:

#include<stdio.h>

int main()

{

    int a,b,i;

    double m;

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

    if(a>=5) i=50;    //判断每时的工资应是多少

    else i=30;

    if(b<=40) m=i*40;    //不同时长的计算方法

    else m=(b-40)*1.5*i+40*i;

    printf("%.2f\n",m);

    return 0;

}

根据样例输入,输出是对的,但是提交后出现如下情况

测试点1答案错误0/511
测试点2答案正确5/511
测试点3答案错误0/211
测试点4答案正确3/311

想知道哪里出了问题,望告知 

_清音
浏览 1601回答 1
1回答

guozhchun

if(b<=40) m=i*40;    //不同时长的计算方法     else m=(b-40)*1.5*i+40*i;这里应该是if (b <= 40)     m = i * b; else     m = (b - 40) * 1.5 * i + 40 * i;
打开App,查看更多内容
随时随地看视频慕课网APP