求解答---为何程序到走到输入人数这一步后就错误了???
程序代码:
#include <stdio.h> #include<string.h> #define MaxSize 20 struct guest_info{ char name[8]; //姓名 int sum; //人数 char time[8]; //用餐时间 int number; //编号 } GuestList[MaxSize]; //GuestList 是一个全局变量的数组,该数组被本程序的所有函数共享 //该数组的每一个元素是一个结构体变量(每个结构体变量有4个成员) void Insert(int *pCount); void Search(int count); void Update(int count); void Delete(int *pCount); void Show(int count); int main() { int i,count=0; //count作为一个计数器,记录已经登记记录个数 //i,count皆为局部变量只能为本函数使用,不能被其他函数使用 do { //显示一个字符形式的简易菜单 printf("\n"); printf("1-----插入(Insert)\n"); printf("2-----查询(Search)\n"); printf("3-----修改(Update)\n"); printf("4-----删除(Delete)\n"); printf("5-----显示(Show)\n"); printf("6-----退出(Exit)\n"); scanf("%d",&i); switch(i) { case 1:Insert(&count); break; case 2:Search(count); break; case 3:Update(count); break; case 4:Delete(&count); break; case 5:Show(count); break; case 6: break; default :printf("错误选择!请从选\n");break; } }while(i!=6); return 0; } void Insert(int *pCount) { int i, in_number; if(*pCount==MaxSize) {printf("空间已满!\n");return;} printf("请输入编号\n"); scanf("%d",&in_number); for(i=0;i<*pCount;i++) if(GuestList[i].number==in_number){printf("已经有相同的编号\n");return;} GuestList[i].number=in_number; printf("请输入姓名:\n"); scanf("%s",GuestList[i].name); printf("请输入人数:\n"); scanf("%s",GuestList[i].sum); printf("请输入用餐时间:\n"); scanf("%s",GuestList[i].time); (*pCount)++; return; } void Search(int count) { int i,number,flag=1; printf("请输入要查询的编号:\n"); scanf("%d",&number); for(i=0;i<count&&flag;i++) if(GuestList[i].number==number) { printf("\n姓名:%s,",GuestList[i].name); printf("人数:%d,",GuestList[i].sum); printf("用餐时间:%s\n",GuestList[i].time); flag=0; } if (flag==1)printf("没有查询到!\n"); } void Update(int count) { int i,number,flag=1; printf("请输入要修改数据的编号:\n"); scanf("%d",&number); for(i=0;i<count&&flag;i++) if(GuestList[i].number=number) { printf("请输入人数:"); scanf("%d",&GuestList[i].sum); printf("请输入用餐时间"); scanf("%s",GuestList[i].time); flag=0; } if (flag==1)printf("没有查询到可以修改的是数据!\n"); } void Delete(int *pCount) { int i,j,number,flag=1; printf("请输入要删除的数据的编号:\n"); scanf("%d",&number); for(i=0;i<*pCount&&flag;i++) if(GuestList[i].number==number) { for(j=i;j<*pCount-1;j++) GuestList[j]=GuestList[j+1]; flag=0; (*pCount)--; } if(flag==1)printf("没有查询到可以删除的数据!\n"); } void Show(int count) { int i; printf("\n"); printf(" 编号 姓名 人数 用餐时间\n"); for(i=0;i<count;i++) { printf("%10d",GuestList[i].number); printf("%12s",GuestList[i].name); printf("%10d",GuestList[i].sum); printf("%12s",GuestList[i].time); } }