#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;
}