c语言结构体的一个问题

开心区餐厅是广州市的一家餐厅。餐厅主要供应一般的食物和饮料,如酒、餐、蔬菜、海鲜等(如表1所示)。为了成为一家高级国际餐厅,餐厅要求每桌的最后帐单必须是100%正确的。因此,餐厅决定开发一个由收银员选择食物或饮料,然后计算和输出最终客户的帐单的系统。经理现在要求您完成这项工作,他希望系统能由收银员选择食物或饮料,然后程序将计算并输出最终帐单。

img

                                                Menu
Food:
                   Name Cost
1 Curry beef with rice ¥40.00
2 Sushi set meal ¥65.00
3 YangZhou fire rice ¥45.00
4 Sirloin Steak with Spaghetti ¥72.00
5 Chicken vegetable roll ¥42.00
Drink:
21 Soft drink ¥10.00
22 Red wine ¥15.00
23 Beer ¥15.00
More food/drink items are added to it
#include <stdio.h>
#include <stdlib.h>
typedef struct _menus
{
    int id;
    char name[50];
    float price;
}menus;
menus food[100],drink[100];
int fs=0,ds=0;
void showmenu()
{
    int i=0;
    printf("\t\t\t\t\tMenu\n");
    printf("\tFood\n");
    printf("\t%-10s%-50s%-10s\n","ID","Name","Cost");
    for(i=0;i<fs;i++)
        printf("\t%-10d%-50s%-10.2f\n",food[i].id,food[i].name,food[i].price);
    printf("\tDrink\n");
    for(i=0;i<ds;i++)
        printf("\t%-10d%-50s%-10.2f\n",drink[i].id,drink[i].name,drink[i].price);
}
float getprice(int id)
{
    int i;
    for(i=0;i<fs;i++)
        if(food[i].id == id)
            return food[i].price;
    for(i=0;i<ds;i++)
        if(drink[i].id == id)
            return food[i].price;
    return 0;
}
int main()
{
    int i;
    int n;
    int type,num;
    float p=0;
    char ch;
    printf("请输入食物数量:");
    scanf("%d",&fs);
    printf("请逐行输入每个食物的ID,Name和Cost:");
    for(i=0;i<fs;i++)
        scanf("%d%s%f",&food[i].id,food[i].name,&food[i].price);
    printf("请输入饮料数量:");
    scanf("%d",&ds);
    printf("请逐行输入每个饮料的ID,Name和Cost:");
    for(i=0;i<ds;i++)
        scanf("%d%s%f",&drink[i].id,drink[i].name,&drink[i].price);
    while(1)
    {
        system("cls");
        showmenu();
        p=0;
        printf("请输入客户选择的食物和酒类数量:");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            printf("请输入第%d种选择的ID和数量:");
            scanf("%d%d",&type,&num);
            p += getprice(type)*num;
        }
        printf("总价为:%.2f\n",p);
        printf("是否继续(Y/y继续,其它退出):");
        getchar();
        scanf("%c",&ch);
        if(ch != 'Y' && ch != 'y')
            break;
    }
    return 0;
}