加油折扣(精确版) 这个过不了,如何解决?(语言-c语言)

只有一个测试点能过

img


/*

订单金额 b Order amount
电子券减免金额d E-coupon discount amount
折扣金额 e Discount amount
支付金额 c Payment amount
*/

/*
#include
int main ()
{
int x,y,t,i;//x是星期,y是所加油量,t是测试次数
double a,b,c,d,e,f;
/*
a是所加油量 ,b是订单金额 ,c是支付金额 ,d是电子券减免金额 ,e是折扣金额,f是用券之后可以优惠的油量
*/

    scanf("%d",&t);//输入测试次数 
    if(t>=1&&t<=10){
    
    for(i=1;i<=t;i++){
        printf("\n");
        scanf("%d%lf",&x,&a);//输入今天是星期几,所加油量
        if(x>=1&&x<=7&&a>=0&&a<=50){
        
         b=8.38*a;
         c=b;
         if(b>=200){
             d=20;
             c-=d;
             f=a-23.8663484487;
             
             if(x==1||x==2||x==3||x==4||x==6||x==7){    //除了星期五的优惠 
             e=f*0.3;
             c-=e;
         }
         if(x==5){
             e=f*0.4;
             c-=e;
         }
    }
        
        
        
        
         else{
             d=0;
             c-=d; 
             if(x==1||x==2||x==3||x==4||x==6||x==7){    //除了星期五的优惠 
             e=a*0.3;
             c-=e;
         }
         if(x==5){
             e=a*0.4;
             c-=e;
         }
         
         }
        
        printf("Order amount: %.2lf\n",b);
        printf("E-coupon discount amount: %.2lf\n",d);
        printf("Discount amount: %.2lf\n"

*/

没看出哪有问题

四舍五入和保留小数不一样