鱼C论坛

 找回密码
 立即注册
查看: 1484|回复: 4

长代码大神救救我吧

[复制链接]
发表于 2020-12-23 18:50:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 东瓜皮6688 于 2020-12-23 18:53 编辑


316行那个循环开始就不行了,我也不太清楚,求大神解救啊,从订票流程开始就不行了,运行到一半后面的就运行不出来了,求大神解救啊






#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;  
#define MAX 60
typedef struct Customer        //乘客信息,使用链表存储结构
{
        char Name[8];             //姓名
        int Amount;              //订票数
        char Rank;               //航班等级
        int IDinfor;            //个人信息
        struct Customer *Next;   //指向下一个乘客结点
}Customer;                  //指针类型,定义指针   p2页

typedef struct Flight         //航班信息,仍使用链表存储结构
{
        char Des_Name[30];      //终点名字
        char Flight_No[10];      //航班号
        char Plane_No[10];       //飞机型号
        int Week_Day;           //飞机周日(星期几)
        int Customer_Amount;    //乘员定额
        int Free_Amount;        //剩余票数
        int Price[3];           //航位等级价格
        Customer *CustName;     //该航班已订票胡乘客名单
        Customer *ReplName;     //该航班胡候补乘客名单
        struct Flight *Next;    //指示下一个航班结点
}Flight,*PFlight;

//全局变量
int Customer_Count=0;      //所有航班的订票乘客总数
Flight *Head=(PFlight)malloc(sizeof(Flight));              //航班头指针
Flight *p2=(PFlight)malloc(sizeof(Flight));                //航班结点指针
Customer *Custp1[MAX];     //各航班乘客结点指针         
Customer *Replp1[MAX];     //各航班候补结点指针
int IsEmpty=1;             //是否有订票乘客  初始化为1即空
int IsReplace=1;           //是否有候补乘客
Customer *prior;           //订票乘客前结点,以作删除操作
int shouldsave=0;          // ?

//函数声明
char Continute();            //询问是否继续函数
void ErrorMess();          //提醒操作失误函数
void LinemanageMenu();    //航班管理子菜单
int Find_Line1(PFlight L,char *key);    //航班号核对函数
int Find_Line2(PFlight L,char *key,PFlight *pp,
               int *Flight_No);        //按航班号查询函数
void Line_search();                   //按目的地查询函数
void Line_Add();                     //添加航班函数
int Line_see();                     //航班查看函数
int Empty_Flight();                //航班判空函数
void bookingMenu();      //订单办理子菜单
void Display_Reserve();      //订票乘客信息
void Display_Replace();      //候补乘客信息
void RefundticketMenu();  //退票办理子菜单
void CustomermagMenu();  //乘客管理子菜单

char Continute()           //询问是否继续
{
        char answer;
        while(1)
        {
                printf("你是否想要继续(Y/N)?\n");
            scanf("%s",&answer);  getchar();
            if(answer=='y'||answer=='Y')
               return 'y';
                else if(answer=='n'||answer=='N')
                   return 'n';
                else  printf("输入有误,请重新输入!");
    }
}

void ErrorMess()            //提醒操作失误函
{
        printf("\n操作有误\n");
        getch();
}



int main()
{
        Head=NULL;
        int c;
        Flight *p1=(PFlight)malloc(sizeof(Flight));
        p1=Head;                  //p1结点指向头指针
        do{
                system("cls");
                printf("\n\t      航空客运订票系统主菜单\n");
                printf("\n************************************************\n");
                printf("\t         1.航 班 管 理 菜 单 \n");
                printf("\t         2.订 票 办 理 菜 单 \n");
                printf("\t         3.退 票 办 理 菜 单 \n");
                printf("\t         4.乘 客 管 理 菜 单 \n");
                printf("\t         5.退 出 系 统 \n");
                printf("\n**********谢谢使用航空客运订票系统!************\n");
                printf("\n请选择你想要的服务:");
                scanf("%d",&c);
                switch(c)
                {
                        case 1:LinemanageMenu();break;
                        case 2:bookingMenu();break;
                        case 3:RefundticketMenu();break;
                        case 4:CustomermagMenu();break;
                        case 5:exit(0);
                        default:break;
                }
        }while(c!=5);
}   // end main

void LinemanageMenu()
{
        int c;
        system("cls");
        while(1)
        {
            printf("\n\t            航班管理菜单\n");
                printf("\n————————————————————————\n");
                printf("\t           1.  添加新航班\n");
                printf("\t           2.  查询航班\n");
                printf("\t           3.  查看航班 \n");
                printf("\t           4.  返回主菜单\n");
                printf("\n————————————————————————\n");
                printf("\n请选择你想要的服务:");
                scanf("%d",&c);
                switch(c)
                {
                        case 1:Line_Add();break;
                        case 2:Line_search();break;
                        case 3:Line_see();break;
                        case 4:return;
                        default:break;
                }
    }
}


void Line_Add()  //添加新航班函数
{
        PFlight *p1;      //创建航班结点指针
        PFlight p=(PFlight)malloc(sizeof(Flight));      
        p1=&Head;        
        while(1)
        {
                if(Head==NULL){
                        *p1=(PFlight)malloc(sizeof(Flight));
                        (*p1)->Next=NULL;
                        p2=Head;
            }//头结点初始化
            else
            {
                    *p1=p;
                    *p1=(PFlight)malloc(sizeof(Flight));
                    p2->Next=*p1;
                    p2=*p1;
                }//添加新的结点
        printf("输入终点站名:");
        scanf("%s",&p2->Des_Name);
        while(1)                                           //加入while是因为想在输入错误的时候能重新输入
        {        printf("输入唯一航班号:");
                scanf("%s",&p2->Flight_No);
                if(Find_Line1(Head, p2->Flight_No))
                   printf("本航班号已存在!请重新输入\n");
                else break;
    }
        printf("输入飞机型号:");
        scanf("%s",&p2->Plane_No);
        while(1)
        {        printf("输入航班工作日期(1-7):");
                scanf("%d",&p2->Week_Day);
            if(p2->Week_Day<1 || p2->Week_Day>7)
                printf("输入有误,请重新输入!\n");
            else  break;        
   }
        printf("输入乘客座位数量:");
        scanf("%d",&p2->Customer_Amount);
        printf("输入头等舱的价格:");
        scanf("%d",&p2->Price[0]);
        printf("输入一等舱的价格:");
        scanf("%d",&p2->Price[1]);
        printf("输入二等舱的价格:");
        scanf("%d",&p2->Price[2]);
        p2->Free_Amount=p2->Customer_Amount;
        p2->CustName=NULL;
        p2->ReplName=NULL;
        if(Continute()=='n'){
                p2->Next=NULL;
                return;
        } //end if
    }//end while(1)
} //end Add

void Line_search()   //根据目的地查询航班信息
{
        char Desname[60];
        int flag=0;
        Flight *p1;
        p1=Head;
    if(Empty_Flight())  return;       //判断空
        while(1)
        {        printf("输入想到达的目的地:");
                scanf("%s",&Desname);
                getchar();
                printf("你所查询的航班信息:\n");
                printf("\n————————————————————————————————————————————————————\n");
                while(p1!=NULL)
                {
                        if(strcmp(p1->Des_Name,Desname)==0)         //strcmp函数比较字符串的大小,只有相同才会返回0
                        {
                                flag=1;
                            cout<<"终点名 航班号 飞机型号 星期 座位数 头等舱价格 一等舱价格 二等舱价格 剩余座位\n";
                        cout<<p1->Des_Name<<"\t"
                                    <<p1->Flight_No<<"\t"
                                    <<p1->Plane_No<<"\t"
                                    <<p1->Week_Day<<"      "
                                    <<p1->Customer_Amount<<"\t"
                                        <<p1->Price[0]<<"\t"
                                        <<p1->Price[1]<<" \t "
                                        <<p1->Price[2]<<"\t\t"
                                        <<p1->Free_Amount<<"\t"
                                        <<endl;
                        }
                        p1=p1->Next;
                }
            if(flag=0 && p1==NULL)                  //寻找到最后仍没有找到该目的地
                   printf("没有到达该目的地的航班!");
                printf("\n————————————————————————————————————————————————————\n");
                if(Continute()=='n')          //询问是否继续该函数
                        return;           
    }//end while(1)
}//end search


int Line_see()         //查看航班信息函数
{
        Flight *p1=Head;
        if(Empty_Flight())   return 0;     //return 0有什么用处????
        printf("你所查询的航班信息:\n");
        printf("\n———————————————————————————————————————————————————————\n");
    cout<<"终点名 航班号 飞机型号 星期 座位数 头等舱价格 一等舱价格 二等舱价格 剩余座位\n";
        while(p1!=NULL)
        {
        cout<<p1->Des_Name<<"\t"
                    <<p1->Flight_No<<"\t"
                    <<p1->Plane_No<<"\t"
                    <<p1->Week_Day<<"      "
                    <<p1->Customer_Amount<<"\t"
                        <<p1->Price[0]<<"\t"
                        <<p1->Price[1]<<"\t"
                        <<p1->Price[2]<<"\t\t"
                        <<p1->Free_Amount<<"\t"
                        <<endl;
            p1=p1->Next;
        }
        printf("\n———————————————————————————————————————————————————————\n");
        printf("按任意键返回!\n");  getch();
}


int Find_Line1(PFlight L,char *key)      //核对航班号信息
{
        int flag=0;                    //作为判定找到or未找到的符号
        Flight *p1;
        p1=L;                     
        if(p1==p2)   return flag;      //首航班不作比较???  
        while(p1!=p2 && p1!=NULL)
        {
                if(strcmp(p1->Flight_No,key)==0)
                {
                        flag=1; break;
                }
                p1=p1->Next;
        }
        return flag;
}

int Empty_Flight()           //判断航班信息是否为空
{
        if(Head==NULL)
        {
                printf("对不起,目前没有任何航班信息。按任意键返回!\n");
                getch();
                return 1;
         }
        return 0;
}

int Find_Line2(PFlight L, char *key, PFlight *pp, int *Flight_No)  //按航班号查询函数
{  
int flag=0;
Flight *p1;
p1=L;
while(p1!=NULL)
{    if(strcmp(p1->Flight_No,key=0))
     {  flag=1;  *pp=p1; break;
         }
         p1=p1->Next;
         if(p1!=NULL)   Flight_No++;
}
return flag;
}

void bookingMenu()//办理订票函数
{
        int Ticket_Count,IDinfor,i,flag=0;
        int Flight_No=0;//记录满足条件的航班结点
        Flight *p1;//记录满足条件的航班结点地址
        Customer *c1;//订票乘客的结点,以便作插入操作
        Customer *c2;//临时候补乘客的结点
        char answer[7]={0};//输入的航班数据
        char temp,c;
        int tag=0;
        int IsRepl=0;
        if(Empty_Flight())    return;//航班为空
        while(1)
        {
                printf("\n\t现在您可以订票!");
                flag=0;
                Flight_No=0;
                tag=0;
                printf("\n\t请输入航班号:");
                   scanf("%s",answer);
                if(Find_Line2(Head,answer,&p1,&Flight_No))
                {
                        while(1)//选择1进入订票系统
                        {
                                printf("\n\t 请输入您想要订购的票的数量:");
                                scanf("%d",&Ticket_Count);
                                if(Ticket_Count==0)
                                {
                                printf("\n\t 请再次输入飞机型号:\n");
                                getch();
                        }
                        else  break;
            }
            if(p1->Free_Amount >= Ticket_Count)//剩余票数>=订购票数,进入订票操作
            {
                    Customer_Count++;//订票乘客总数增1
                    flag=1;
                    IsRepl=1;
                    if(p1->CustName==NULL)//创建表头,建议立该航班首位乘客结点
                    {
                            Custp1[Flight_No]=c1=(Customer*)malloc(sizeof(Customer));//malloc函数动态内存申请,让Customer*指针作乘客结构体变量
                            p1->CustName=Custp1[Flight_No];
                        }
                        else
                        {//建立后续乘客结点
                         c1=(Customer*)malloc(sizeof(Customer));
                         Custp1[Flight_No]->Next=c1;
                         Custp1[Flight_No]=c1;                                                                                                                                                                           
                        }
                        IsEmpty=0;
                        Custp1[Flight_No]->Amount=Ticket_Count;
                        IDinfor = p1->Customer_Amount-p1->Free_Amount+1;
                        Custp1[Flight_No]->IDinfor = IDinfor;
                        p1->Free_Amount -= Ticket_Count;
                        printf("\n\t 请输入您的姓名");
                          scanf("%s",&Custp1[Flight_No]->Name);
                        while(1)
                        {
                                printf("\n\t 请输入舱位等级:");
                                  scanf("%s",&Custp1[Flight_No]->Rank);
                                if(!(Custp1[Flight_No]->Rank>='1'&&Custp1[Flight_No]->Rank<='3'))
                        {
                                {
                                        printf("\n\t输入有误,请重新输入!");
                                        getch();
                                }
                        }
                                else
                                  break;                           
                         }
                         printf("\n\t 请输入你的ID信息:");
                           scanf("%d",&Custp1[Flight_No]->IDinfor);
                           if(Ticket_Count<10)
                                 printf("\n\t");
                           else
                                 printf("\n\t");
                           printf("\n\t 恭喜您订票成功!\n");
                           for(i=1; i<=Ticket_Count; i++)
                           {
                                   printf("\n\t 您所预定的座位号是%d",IDinfor++);
                                   if(i%10==0)   printf("\n\t");
                           }
                           printf("\n");
                        }
                        else if(p1->Free_Amount==0)//剩余票数为0
                {
                        printf("\n\t对不起,票已售完!\n");   IsRepl=0;
                }
                else
                {
                        printf("\n\t对不起,当前没有多余的票!\n");    IsRepl=0;
                }
                if(!IsRepl)
                {
                printf("\n\t 您是否想成为候补乘客(Y/N)?") ;
                scanf("%s",&temp);
                if(temp=='y'||temp=='Y')//进入候补操作
                {
                        if(p1->ReplName==NULL)//建立首位候补乘客结点
                        {
                                c2=(Customer*)malloc(sizeof(Customer));
                                Replp1[Flight_No]=c2;
                                p1->ReplName = Replp1[Flight_No];
                                }
                        else
                        {
                                c2=(Customer*)malloc(sizeof(Customer));
                                Replp1[Flight_No]->Next=c2;
                                Replp1[Flight_No] = c2;
                        }
                        IsReplace=0;//候补乘客不为空
                        tag=1;//已选择列入候补乘客名单
                        Replp1[Flight_No]->Amount = Ticket_Count;
                        printf ("\n\t 请输入您的姓名:");
                           scanf("%s",&Replp1[Flight_No]->Name);
                        Replp1[Flight_No]->IDinfor = IDinfor;
                        Replp1[Flight_No]->Amount = Ticket_Count;
                        while(1)
                        {
                                printf("\n\t 请输入舱位等级:");
                                  scanf("%s",&Replp1[Flight_No]->Rank);
                                printf("\n\t 请输入你的ID信息:");
                              scanf("%d",&Replp1[Flight_No]->IDinfor);
                                if(!(Replp1[Flight_No]->Rank>='1'&&Replp1[Flight_No]->Rank<='3'))
                                {
                                        printf("\n\t输入有误,请重新输入!");
                                        getch();
                                }
                                else
                                  break;                           
                         }
                         printf("\n\t没有剩余座位!\n");//提示候补无座
                         shouldsave==1;
                }
                }
        }
        else
             printf("\n\t对不起,航班不存在!\n");
        if(flag)//若不做处理,会地址溢出
            Custp1[Flight_No]->Next=NULL;
        if(tag)//若不做处理,会地址溢出
        {
            Replp1[Flight_No]->Next=NULL;
            printf("\n\t 您已经成功排入候补订票队列中!\n");
    }
    printf("\n\t 是否退出菜单?:(Y/N)");
    scanf("%s",&c);
    if(c=='y')   return;
}
}

void RefundticketMenu()
{
        int Flight_No=0,flag=0;       //满足条件的航班的订票结点
        Flight *p1;                  //满足条件的航班的订票结点地址
        Customer *c2,*c4;            //临时订票乘客结点
        Customer *c3,*c5;           //临时候补乘客结点
        char answer[7],name[7];     //用户输入的航班数据
        int tag=0;                  //*若第二乘客满足条件,则它的首地址会冲突,注意此处*
        int IDinfor;                //记录座位号
        if(Empty_Flight())   return;  //航班为空
        printf("\n\t 现在开始进行退票手续");
        if(IsEmpty)
        {
                printf("\n\t 对不起,乘客不存在!");    getch();
                return;
         }
        while(1)
        {
                flag=0; tag=0; Flight_No=0;
                printf("\n\t 请输入航班:");
                scanf("%s",&answer);
                if(Find_Line2(Head,answer,&p1,&Flight_No))    //即航班存在
                {
                c2=p1->CustName;                              //指向该航班乘客名单首地址
                printf("\n\t 请输入您的姓名:");
                   scanf("%s",&name);
                if(c2==NULL)
                {
                        printf("\n\t 对不起,乘客不存在");
                        if(Continute()=='n')    return;          //是否继续操作
                 }
                 else
                  while(c2!=NULL)                        //查找有无该乘客名字
                  {
                      if(strcmp(c2->Name,name)==0)
                      {
                              if(c2==p1->CustName)            //若为首位乘客满足
                              {  prior=p1->CustName;          //记录指针
                                 IDinfor=c2->IDinfor;
                                   flag=1;  break;
                                  }
                          }
                    else if(c2->Next!=NULL);             //记录满足条件航班的前结点地址
                        {   if(strcmp(c2->Next->Name,name)==0)
                              { tag=1;
                                prior=c2;
                                IDinfor=c2->Next->IDinfor;
                                flag=1; break;
                                  }
        }
        c2 = c2->Next;                              //指向下一乘客结点
        shouldsave = 1;
}   
   if(!flag)
      printf("\n\t 对不起,乘客不存在!\n");
}
else printf("\n\t 对不起, 航班不存在!\n");
if(flag)
{  if(prior==p1->CustName  &&  !tag)          //首结点满足条件,则该航班订票乘客置空
     {
             if(prior->Next==NULL)
             {       p1->Free_Amount  += prior->Amount;
                        p1->CustName=NULL;
                 }
             else
             {
                     p1->Free_Amount += prior->Next->Amount;
                     p1->CustName = prior->Next;
                 }
         }
         else
         {
                 p1->Free_Amount += prior->Next->Amount;
                 prior->Next = prior->Next->Next;
         }
         Customer_Count--;
         if(Customer_Count==0)     IsEmpty = 1;
         shouldsave=1;
}
if(flag)
{
        c3=p1->ReplName;
        while(c3!=NULL)
        {
                if(c3->Amount<=p1->Free_Amount)    //候补乘客的订票数小于或等于剩余票数
                {
                  printf("\n\t 候补乘客已经存在!\n");
                  c4=(Customer*)malloc(sizeof(Customer));    //分配新结点
                  Custp1[Flight_No]->Next=c4;
                  c4->Next=NULL;
                  IsEmpty=0;
                  if(p1->CustName==NULL)   p1->CustName=c4;
                  strcpy(c4->Name,c3->Name);
                  c4->Rank = c3->Rank;
                  c4->Amount = c3->Amount;
                  c4->IDinfor = IDinfor;
                  p1->Free_Amount -= c3->Amount;
                  Customer_Count++;
                  if(c3->Next==NULL)   IsReplace=1;
                  if(p1->ReplName==c3)
                  {
                          if(p1->ReplName->Next==NULL)
                             p1->ReplName=NULL;                     //删除
                    else p1->ReplName = c3->Next;
                   }
        }
        else c5->Next=c3->Next->Next;
        break;
}
if(c3->Next!=NULL)
if(c3->Next->Amount<=p1->Free_Amount)
   c5=c3;
   c3=c3->Next;
   shouldsave=1;
}
   printf("\n\t 退票成功!");    getch();
   return;
}
   shouldsave=1;
   if(Continute()=='n')    return;
}

  
void CustomermagMenu()   //乘客管理子菜单
{
        int c;
        system("cls");
        while(1)
        {
                printf("\n\t            乘客管理菜单\n");
                printf("\n————————————————————————\n");
                printf("\t           1.  订票乘客信息\n");
                printf("\t           2.  候补乘客信息\n");
                printf("\t           3.  返回主菜单\n");
                printf("\n————————————————————————\n");
                printf("\n请选择你想要的服务:\n");
                scanf("%d",&c);
                switch(c)
                {
                        case 1:Display_Reserve();break;
                        case 2:Display_Replace();break;
                        case 3:return;
                        default:break;
                }
        }
}

void Display_Reserve()   //查看订票乘客名单
{
        Flight *p1=Head;
        Customer *c1;
        system("cls");
        if(Empty_Flight())  return;             //判断航班否空
        printf("查看订票乘客的信息:");
        if(IsEmpty)                             //判断有无乘客信息
        {
                printf("对不起,没有任何订票乘客信息。\n");
                getch(); return;
        }
        printf("\n————————————————————————————————————————————————\n");
        printf("姓名   航班号   飞机型号   订票数    目的地    座位等级  身份证ID\n");
        while(p1!=NULL)                     //进入航班链表
        {
                if(p1->CustName!=NULL)           //当该航班乘客名单不空
                {
                        c1=p1->CustName;             //c1指向乘客名单链表
                        while(c1!=NULL)              //当c1为查询完全部名单
                        {
                                printf("%-8s%-10s%-9s%-10d%-9s%-9s%-20d%\n",c1->Name,p1->Flight_No,p1->Plane_No,c1->Amount,
                                p1->Des_Name,c1->Rank,c1->IDinfor);
                            c1=c1->Next;             //c1移至下一个乘客名单
                        }
                        if(p1->Free_Amount>=1)        //判断该航班的剩余票数
                           printf("该航班还有多余的票\n");
                        else
                           printf("该航班票已售完\n");
                }
                p1=p1->Next;                       //p1移至下一个航班
        printf("\n————————————————————————————————————————————————\n");
        }//end while
        printf("按任意键返回!\n");
        getch();  return;
}//end reserve


void Display_Replace()      //查看候补乘客名单
{
        Flight *p1=Head;
        Customer *c1;
        system("cls");
        if(Empty_Flight())  return;             //判断航班否空
        printf("查看候补乘客的信息:");
        if(IsReplace)                             //判断有无乘客信息
        {
                printf("对不起,没有任何候补乘客信息。\n");
                getch(); return;
        }
        printf("\n————————————————————————————————————————————————\n");
        printf("姓名   航班号   飞机型号   订票数    目的地    座位等级  身份证ID\n");
        while(p1!=NULL)                     //进入航班链表
        {
                if(p1->ReplName!=NULL)           //当该航班候补乘客名单不空
                {
                        c1=p1->ReplName;             //c1指向候补乘客名单链表
                        while(c1!=NULL)              //当c1为查询完全部名单
                        {
                                printf("%-8s%-10s%-9s%-10d%-9s%-9s%-20d%\n",c1->Name,p1->Flight_No,p1->Plane_No,c1->Amount,
                                p1->Des_Name,c1->Rank,c1->IDinfor);
                            c1=c1->Next;             //c1移至下一个乘客名单
                        }
                        if(p1->Free_Amount>=1)        //判断该航班的剩余票数
                           printf("该航班还有多余的票\n");
                        else
                           printf("该航班票已售完\n");
                }
                p1=p1->Next;                       //p1移至下一个航班
        printf("\n————————————————————————————————————————————————\n");
        }//end while
        printf("按任意键返回!\n");
        getch();  return;
}//end replace



评分

参与人数 1鱼币 -2 收起 理由
心驰神往 -2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-23 18:51:51 | 显示全部楼层
本帖最后由 东瓜皮6688 于 2020-12-23 18:54 编辑

我觉得是316行那个循环开始就不行了,大神帮帮忙,我知道的就这些了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-25 21:22:28 | 显示全部楼层
订票流程的问题,改两个地方就行。295行或附近的if(strcmp(p1->Flight_No,key=0))改成if(!strcmp(p1->Flight_No,key))。其他功能我也没有测试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-25 21:24:31 | 显示全部楼层
添加航班那里,有点问题,如果选择“继续”的话,程序会直接停止,因为你下面没做好,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-25 21:44:50 | 显示全部楼层
661行附近的printf("%-8s%-10s%-9s%-10d%-9s%-9s%-20d%\n",c1->Name,p1->Flight_No,p1->Plane_No,c1->Amount,p1->Des_Name,c1->Rank,c1->IDinfor);改成printf("%-8s%-10s%-9s%-10d%-9s%-9c%-20d%\n",c1->Name,p1->Flight_No,p1->Plane_No,c1->Amount,p1->Des_Name,c1->Rank,c1->IDinfor);因为你的c1->Rank是char类型,你却用了%s,会段错误的。就是候补乘客会输出不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表