可能有点笨,应该还有优化的余地

#include<stdio.h>
int main()
{
    int a,b,c;
    double d, e;
    while(1)
    {
        scanf("%lf %d %d %d",&d,&a,&b,&c);    //接收数据
        if((a==11&&b==11)||(a==12&&b==12))    //判断日期
            break;
    }
    if(c==1)    //有优惠卷
        if(a==11)
            e = d*0.7-50;
        else
            e = d*0.8-50;
    else    //没有优惠卷
        if(a==11)
            e = d*0.7;
        else
            e = d*0.8;
    if(e<0.0)    //出现白嫖的情况
        e=0.0;
    printf("%.2lf",e);
    return 0;
}