有人知道如何求这个问题吗

img

#include <stdio.h>
int main()
{
    float fw;
    int w,t,fy=10;
    scanf("%f",&fw);
    w = fw;
    if(fw - w > 0)
          w++;
    t = w/10;
    switch(t)
    {
        default:
        {
           fy += (w-30)*6;
           w = 30;
        }
        case 1:
        case 2:
        {
            fy += (w-10)*5;
            w = 10;
        }
        case 0:
        {
              fy += (w-1)*4;
        }
    }
    printf("%d",fy);
    return 0;
}


int main()
{
    float w=0.f,money=0.f;
    scanf("%f",&w);
    if(w-(float)(int)w)
        w=(float)((int)w+1);
    
    while(w)
    {
        if(w<=10.f)
        {
            money = money + 10.f + (w-1.0f)*4.0f;
            w=0.f;
        }else if(10.f<w && w<=30.f)
        {
            money = money + (w-10.f)*5.0f;
            w=10.f;
        }else{
            money = money + (w-30.f)*6.0f;
            w=30.f;
        }
    }
    printf("%.2f",money);
    
    return 0;
}