编辑代码

#include <stdio.h>

#define <stdbool.h>

#define ARICHOKE 2.05
#define BEET 1.15
#define CARROT 1.09
#define OVERWT 0.5
#define FIRSTWT 6.5
#define SECONDWT 14

int main () {
    char ch;
    double freight, t_freight, pay, pay_01, a_freight = 0, b_freight = 0, c_freight = 0;
    bool i = false;
    printf("输入您要购买的货物(输入q退出)\n");
    printf("购买货物超过一百美元9.5折(重量<5运费=6.5,重量5~20=14,重量>20=+0.5)\n");
    printf("a.%s2.05美元/磅%-15cb.%s1.15美元/磅\n", "洋蓟", '\0', "甜菜");
    printf("c.%s1.09美元/磅\n", "胡萝卜");
    while((ch = getchar()) != 'q')
    {
        printf("输入你要购买的货物重量(单位:磅):");
        scanf("%lf", freight);
        switch (ch)
        {
            case 'a':pay = ARICHOKE; a_freight +=freight; break;
            case 'b':pay = BEET; b_freight +=freight; break;
            case 'c':pay = CARROT; c_freight +=freight; break;
            default:printf("没有这种货物货物,请重新选择");continue;
        }
        printf("购买了%.2lf甜菜磅,%.2lf洋蓟磅,%.2lf胡萝卜磅");
        t_freight = a_freight + b_freight + c_freight;
        pay = a_freight * ARICHOKE + b_freight * BEET + c_freight * CARROT;
        if(pay >= 100)
        {
            pay *= 0.95;
            i = true;
        }
        pay_01 = pay;
        if(t_freight <= 5)
            pay += FIRSTWT;
        else if(t_freight )
            pay += SECONDWT;
        else
            pay +=SECONDWT + (t_freight - 20) * 0.5;
        printf("订购重量为洋蓟%.2lf磅, 甜菜%.2lf磅,胡萝卜%.2lf磅,总重%.2lf\n",
        a_freight, b_freight, c_freight, t_freight);
    }
    printf("订单的总费用是:%.2lf", pay);
    if(i)
        printf("本次打九五折");
    else
        printf("\n");
    printf("购买的蔬菜费用为:%.2lf", pay_01);
    printf("运费和包装是%.2lf", pay - pay_01);
	return 0;
}