求行李寄存价格,输入数据有多组

7-6 行李寄存价格 (10 分)
某车站行李托运收费标准是:10公斤或10公斤以下,收费2.5元,超过10公斤的行李,按每超过1公斤(不足1公斤按1公斤计)增加1.5元进行收费。 试编一程序,输入行李的重量,算出托运费。

输入格式:
输入数据有多组,每组占1行,每行为一个正实数,表示行李重量(单位:公斤)。

输出格式:
每组输出一个实数,表示行李费(保留2位小数)。

输入样例:
10
结尾无空行
输出样例:
在这里给出相应的输出。例如:

2.50
结尾无空行
#include<stdio.h>
main()
{
int a;
float m,p,b;
while(scanf("%f",&m)!=EOF)
{if(m<=10)
{
p=2.50;
printf("%.2f\n",p);
}

if(m>10)
{
    a=m-10;
    b=m-10;
 }
    if(a<b)
    {
        a=a+1;
        p=2.5+1.5*a;
        printf("%.2f\n",p);
        }
    if(a==b)
    {
        p=2.5+1.5*a;
        printf("%.2lf\n",p);
        
    }

}

return 0;
}
麻烦请问这个出错在哪里呀,我感觉没问题

你得用if。。。else啊

#include<stdio.h>
int main()
{
    int a;
    float m,p,b;
    while(scanf("%f",&m)!=EOF)
    {
        if(m<=10)
        {
            p=2.50;
            printf("%.2f\n",p);
        }
        else
        {
            a=m-10;
            b=m-10;
            if(a<b)
            {
                a=a+1;
                p=2.5+1.5*a;
                printf("%.2f\n",p);
            }
            else if(a==b)
            {
                p=2.5+1.5*a;
                printf("%.2f\n",p);

            }
        }
    }
    return 0;
}