c语言写一个简单的点餐系统,为什么我写出来的代码第一个for循环里的break不起作用啊,然后输出的fee也没反应,在循环里又可以输出,出了for循环就输出不了了
1
#include<stdio.h>
#define max 30 //最多点30个菜
struct price
{
int price[8]; //定义一个数组结构体存放价格
};
int main()
{
struct price p1={40,65,45,72,42,10,15,15}; //存放每个菜的价格
int i,j,a[30];
int fee=0;
char b[8][1000]={"1 Curry beef with rice(咖喱牛肉饭) ¥40.00\n",
"2 Sushi set meal(寿司套餐) ¥65.00\n",
"3 YangZhou fired rice(扬州炒饭) ¥45.00\n",
"4 Sirloin Steak(西冷牛排) ¥72.00\n",
"5 Chicken vegetable roll(鸡肉蔬菜卷) ¥42.00\n",
"6 Soft drink(软饮料) ¥10.00\n",
"7 Red wine(红葡萄酒) ¥15.00\n",
"8 Beer(啤酒) ¥15.00\n"};
struct price *p; //引入结构体指针
p=&p1; //初始化
printf("欢迎来到本店,本店菜单如下:\n\n"
" Menu\n"
" Food:\n"
"ID Name Cost\n"
"1 Curry beef with rice(咖喱牛肉饭) ¥40.00\n"
"2 Sushi set meal(寿司套餐) ¥65.00\n"
"3 YangZhou fired rice(扬州炒饭) ¥45.00\n"
"4 Sirloin Steak(西冷牛排) ¥72.00\n"
"5 Chicken vegetable roll(鸡肉蔬菜卷) ¥42.00\n"
"Drink:\n"
"21 Soft drink(软饮料) ¥10.00\n"
"22 Red wine(红葡萄酒) ¥15.00\n"
"23 Beer(啤酒) ¥15.00\n"
"More food/drink items are added to it.\n");
printf("请输入您要点的菜的序号(用空格键间隔开):");
for(i=0;i<max;i++)
{
scanf("%d",&a[i]); //存放客人点菜的数据
if(a[i]=='\n')
break; (就是这句无效)
}
printf("您的账单如下:\n");
int len=sizeof(a)/sizeof(a[0]);
for(i=0;i<len;i++)
{
fee+=*(p1.price+(a[i]-1)); //账单的总价格
printf("%s",b[a[i]-1]); //账单里的菜名
}
printf("总价格为:%d",fee); //输出总价格 (打印不出来)
return 0;
}