求解答---为何程序到走到输入人数这一步后就错误了???
程序代码:#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);
}
}









