标题:C语言求助 在一个大课程中插入一个修改函数陷入了死循环
取消只看楼主
Amisty最可爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-22
结帖率:0
已结贴  问题点数:20 回复次数:5 
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);
}
}
搜索更多相关主题的帖子: int number count 订单 printf 
2017-12-22 11:21
Amisty最可爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-22
得分:0 
运行没有问题就是在case3的时候 修改订单 程序运行陷入死循环
2017-12-22 11:22
Amisty最可爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-22
得分:0 
回复 3楼 grmmylbs
你看下就是我运行错误部分的截图
2017-12-22 11:40
Amisty最可爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-22
得分:0 
运行的部分错误截图

2017-12-22 11:40
Amisty最可爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-22
得分:0 
回复 3楼 grmmylbs
我把&&修改为了|| 在运行的时候出现了下面的情况

2017-12-22 11:46
Amisty最可爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-22
得分:0 
回复 7楼 grmmylbs
你是讲&&改为了||吗
2017-12-22 11:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483616-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.666890 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved