mimi22333 2019-10-19 00:48 采纳率: 0%
浏览 7977

Process exited after7.379 seconds with return value 3221225477,如果程序正常输出但不出现这句话是不是代表着发生了什么异常

图片说明

代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

#define MAXSIZE 5
typedef struct  passengernode{
    char name[15];
    int  passengernode_amt;
    struct  passengernode*next;
}linklist;
typedef struct airline

{
    char ter_name[15];
    char tr_no[10];
    char time[10];
    char pri[7];
    int tkt_amt;
    int tkt_sur;
    linklist*passengernode;

 }lineinfo;
 struct airline*start;
void display(struct airline*info)
{
    printf("%8s\t%3s\t%s\t\t%4s\t%3d\t%10d\n",info->ter_name,info->tr_no,info->time,info->pri,info->tkt_amt,info->tkt_sur);

}
void list()
{
    struct airline*info;
    int i=0;

    printf("终点站/t航班号\t起飞时间\t票价\t限定乘客\t剩余票量\n");
    for(info=start;i<MAXSIZE;info++,i++)
    {
        display(info);

    }
    printf("\n\n");

}
void search()
{
    struct airline*info;
    char number[15];
    int i;
    info=start;
    printf("请输入航班:");
    scanf("%s",number);
    for(i=0;i<MAXSIZE;info++,i++)
    {
        if(!strcmp(number,info->tr_no))

        break;



     } 
     if(i>=MAXSIZE)
     {

    printf("对不起,找不到这个航线没有\n");
}
else 
{
    printf("终点站/t航班号\t起飞时间\t票价\t限定乘客\t剩余票量\n");
    display(info);
}

}

linklist*insertlink(linklist*head,int amount,char name[])
{
    linklist*p1,*p2;
    p1=head;
    p2=(linklist*)malloc(sizeof(linklist));
    if(!p2){
        printf("\n溢出!\n");
        return NULL;

    }
    strcpy(p2->name,name);
    p2->passengernode_amt=amount;
    p2->next=NULL;
    if(head==NULL)
    {
        head=p2;
        p2->next=NULL;

     } 
     else{
        head=p2;

     }
     p2->next=p1;
     return head;

}
void order()
{

struct airline*info;
 int i;

int amount;
char name[10];
char number[15];

info=start;
printf("请输入你所需要的航线:"); 
scanf("%s",number);
for(i=0;i<MAXSIZE;info++,i++)
    {
        if(!strcmp(number,info->tr_no))

        break;



     } 
     if(i>=MAXSIZE)
     {   
    printf("对不起,找不到这个航线没有\n");
}
else{
printf("请输入你需要的票数:");
scanf("%d",&amount);
if(amount> info->tkt_amt)
{
    printf("\n对不起,你输入的票数以超过限定成员!");
    return;

 } 
if(amount<=info->tkt_sur)
{
    int i;
    printf("请输入你的名字:");
    scanf("%s",name);
    info->passengernode=insertlink(info->passengernode,amount,name);
    for(i=0;i<amount;i++)
    {
        printf("%s座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);


}
info->tkt_sur-=amount;
printf("\n祝你乘坐快乐\n");
}
else
{

    printf("\n以满人\n");

}}} 
void return_tkt()
{
    struct airline*info;
    linklist*p1,*s1,*head;
    char aname[15];
    head=info->passengernode;
    p1=head;

    printf("请输入你的名字:");
    scanf("%s",aname);
    while(p1!=NULL)
    {
        if(!strcmp(aname,p1->name))
        {
            break;
        }
        s1=p1;
        p1=p1->next;

    }
    if(p1==NULL)
    {
        printf("对不起,你没订票\n");
        return;
    }
    else
    {
        if(p1==head)
        {
            head=p1->next;

        }
        else
        {

            s1->next=p1->next;
        }
        info->tkt_sur+=p1->passengernode_amt;
        printf("%s退票成功\n",p1->name);
        free(p1);

    }
    info->passengernode=head;
}

    int menu_select()
    {
        int c;
        char s[40];
        printf("\t订票系统\n");
        printf("___________\n");
        printf("1.查看航线信息\n");
        printf("2.查询航线\n");
        printf("3.订票\n");
        printf("4.退票\n");
        printf("5.退出系统\n");
        printf("________\n");
        do{
            printf("请选择:");
            scanf("%s",s);
            c=atoi(s);


        }while(c<1||c>5);
        return c;

    }
    int main()
    {
        struct airline air[MAXSIZE]=
        {
        {"a","1","2000","860",30,30},
        {"b","2","1000","750",30,30},
        {"c","3","1500","650",20,20},
        {"d","4","1100","520",40,40},
        {"e","5","1600","450",10,10},


        };
        start=air;
        for(;;)
        {
            system("cls");
            switch(menu_select())
            {
                case 1:list();
                break;
                case 2:search();
                break;
                case 3:order();
                break;
                case 4:return_tkt();
                break;
                case 5:printf("\n感谢你的使用,再见\n");
                exit(0);
            }
        printf("\n任意按键继续\n");
        getch();    
        }
    }

  • 写回答

3条回答

  • g数退学 2023-07-23 16:06
    关注

    可能你某个变量被同名定义了两次

    评论

报告相同问题?

悬赏问题

  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码