C语言求助 在一个大课程中插入一个修改函数陷入了死循环
C语言程序全部如下#include <stdio.h>
#include <string.h>
#define maxsize 20
struct guest_info
{ char name[8];
int sum;
char time[10];
int number;
}guestlist[maxsize];
void insert(int *);
void search(int);
void update(int);
void show (int);
int main()
{
int i;
int count=0; /// count用来记录订单数目 ,起初订单数目为0.
do
{printf("\n");
printf("1-----插入订单(insert)\n");
printf("2-----查询订单(search)\n");
printf("3-----修改订单(update)\n");
printf("4-----显示订单(show) \n");
printf("5-----退出选项(exit) \n");
scanf("%d",&i);
switch(i)
{case 1:insert(&count);
break;
case 2:search(count);
break;
case 3:update(count);
break;
case 4:show(count);
break;
case 5:break;
default:printf("错误选项,请重选!");break;
}
}while(i!=5);
return 0;
}
void insert(int *count)
{int i,in_number;
if(*count==maxsize)
{printf("订单已满!");return;}
printf("请输入编号:");
scanf("%d",&in_number);
for(i=0;i<*count;i++)
if(guestlist[i].number==in_number)
{printf("编号重复!");return;}
guestlist[i].number=in_number;
printf("请输入姓名:");
scanf("%s",&guestlist[i].name);
printf("请输入人数:");
scanf("%d",&guestlist[i].sum);
printf("请输入用餐时间:");
scanf("%s",&guestlist[i].time);
(*count)++;
}
void search(int count)
{int i,number,flag=1;
printf("请输入要查询的编号:");
scanf("%d",&number);
for(i=0;i<count&&flag;i++)
if(guestlist[i].number==number)
{
printf("姓名:%s",guestlist[i].name);
printf("人数:%d",guestlist[i].sum);
printf("用餐时间:%s",guestlist[i].time);
flag=0;
}
else
printf("没有查询到订单!");
}
void update(int count)
{int i,number,flag=1;
printf("请输入要修改的订单编号:");
scanf("%d",&number);
for(i=0;i<count&&flag;i++)
if(guestlist[i].number==number)
{
printf("请输入人数:");
scanf("%d",&guestlist[i].sum);
printf("请输入用餐时间:");
scanf("%d",&guestlist[i].time);
flag=0;
}
else
printf("没有查询到可以修改的订单!");
}
void show(int count)
{int i;
printf("\n");
printf(" 编号 姓名 人数 用餐时间");
for(i=0;i<count;i++)
{printf("\n%10d",guestlist[i].number);
printf("%12s",guestlist[i].name);
printf("%10d ",guestlist[i].sum);
printf("%12s",guestlist[i].time);
}
}