这道题L1的,搞了还错,怎么回事?

K12444 水费单
题目描述
今天小科家收到了上个月的水费单,小科家一向节约用水,所以看到高额的水费单妈妈比较吃惊,立马找到小科想让小科帮忙核对一下水费单上的数据是否是正确的。

小科得知水费是采用阶梯计算费用的,阶梯式水价制度分为三级,具体方案是:

第一级:用水量低于152 立方米(含152立方米),水价为 2.66 元/立方米;

第二级:用水量为152到240 立方米(不含152 立方米,含240 立方米)的,高于152 立方米的部分的水价为3.55 元/立方米;

第三级:用水量为240立方米以上,高于240 立方米的部分的水价为 6.22 元/立方米

小朋友们,能否通过水表数据上的用水量,帮助小科计算出需要的水费呢?

输入格式
输入一个正整数 w,表示用水量,单位为立方米。

输出格式
输出一行,表示水费,要求四舍五入精确到小数点后 2 位,单位为元。

输入输出样列
输入样例1:
140

输出样例1:
372.40

说明
【数据范围】

100%的数据:0<w<=10000000

【耗时限制】1000ms 【内存限制】128MB

#include<cstdio>
using namespace std;
int main(){
    int w;
    double c;
    scanf("%d",&w);
    if(w <= 152){
        c = w * 2.66;
    }
    else if(w > 152 && w <= 240){
        c = 152 * 2.66 + (w - 152) * 3.55;
    }
    else{
        c = 152 * 2.66 + (240 - 152) * 3.55 + (w - 240) * 6.22;
    }
    printf("%.2lf",c);
    return 0;
}


直接模拟就好了啊

printf("%.2lf",int(c*100+0.5)/100.0);
四舍五入精确到小数点后 2 位。