一个关于 采购蔬菜费用的计算 循环计算出错了 求帮忙看看哪里有问题
代码计算的价格对的 但是有2个问题
(1) 在switch()中 按U 不能退出 求问 为什么? 该怎么改?
(2) 想进行循环计算的时候 会直接跳过switch() 不能选择种类 为什么啊? 还有就算第一次计算完了 也会直接说按任意键退出 不能循环计算 求解答 求帮助 跪谢大家 全部分都给你们 求帮助
#include <stdio.h>
#define ADC 1.25// 朝鲜鱼
#define APC 0.65// 甜菜
#define ADK 0.89// 胡萝卜
#define BCK 3.50// 不超过5磅的运输费
#define BCA 10.00// 6磅--19磅的运输费
int main()
{
double p;
char ch;//开关 选择种类
char a; // 朝鲜鱼
char b; //甜菜
char c; //胡萝卜
char u;//退出采购
double d=0.05; //打折5%
double e=0; //订购的磅数
double t=0; //添加运输前的费用
double f=0; //总的费用
double k=0; //折扣后的价格
double h=0; //运输费用
while(1)
{
printf("请先输入你需要的蔬菜种类
a 朝鲜鱼 b 甜菜 c 胡萝卜 u 退出采购\n");
switch(getchar(ch))
{
case 'a': p=ADC;
break;
case 'b': p=APC;
break;
case 'c': p=ADK;
break;
case 'u': p=u;
break;
default: return(0);
break;
}
printf("谢谢你对本公司的支持\n");
printf("现在请你输入你想要采购数量\n");
scanf("%lf",&e);
t=e*p;
k=t-(t*d);
printf("不添加运输费 然后打折后的费用为%.2lf\n",k);
if(t>0&&t<=5)
{
h=t+BCK;
}
else if(t>=6&&t<=19)
{
h=t+BCA;
}
else
{
h=t+8+(e*0.1);
}
f=h+k;
printf("你采购的蔬菜每磅的费用为%.2lf\n",p);
printf("\n");
printf("采购的蔬菜种类是%c\n",ch);
printf("\n");
printf("折扣后的费用为%.2lf\n",k);
printf("\n");
printf("运输费为%.2lf\n",h);
printf("\n");
printf("订单的总费用为%.2lf\n",f);
printf("\n");
printf("谢谢合作 ");
printf("如果还想要继续采购 请继续\n");
}
return 0;
}