程序老是执行不了,这个应该怎么解决,有没有大佬帮忙看一下的?

#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct Stu
{
    char id[10];
    char name[20];
    char bj[10];
    int sx,yy,jsj;
    struct Stu * st;    
}Stu;
Stu * head = NULL;
Stu * tail = NULL;

void help()
{
    printf("---------------主菜单-------------\n");
    printf("1.录入学生信息      2.查询学生信息\n");
    printf("3.学生成绩排名      4.修改学生信息\n");
    printf("5.删除学生信息      6.打印学生信息\n");    
    printf("-----------0. 退出系统------------\n");    
    return;
}

void input()
{
    int i,n;
    printf("请输入录入学生的人数:\n");
    while (scanf("%d", &n) != 1)  
    {
        printf("输入有误!请重新输入:\n");
        fflush(stdin);
    }
    Stu * temp = (Stu *)malloc(sizeof(Stu));
    for(i=0;i<n;++i)
    {
        printf("输入第%d个学生学号:",i+1);
        scanf("%s",temp->id);
        printf("输入第%d个学生姓名:",i+1);
        scanf("%s",temp->name);
        printf("输入第%d个学生班级:",i+1);
        scanf("%s",temp->bj);
        printf("输入该学生三门课成绩:\n");
        printf("数学:");
        scanf("%d",&temp->sx);
        printf("英语:");
        scanf("%d",&temp->yy);
        printf("计算机:");
        scanf("%d",&temp->jsj);
        temp->st = NULL;
            if (head == NULL)
            {
                head = temp;
                tail = temp;
            }
            else 
            {
                tail->st = temp;
                tail = temp;
            }
    }    
    return;
}

Stu * chaxun()
{
    char str[20];
    printf("输入要查找的学生学号或姓名\n按“#”退出\n");
    scanf("%s",str);
    if(str[20]=='#')    return NULL;
    Stu * temp = head;
    if(head==NULL||temp==NULL)
    { 
        printf("未查找到相关信息!\n");
        return NULL; 
    }
    else
    {
        while (temp)
        {
            if (!strcmp(temp->id, str) || !strcmp(temp->name, str))
            break;               
            temp = temp->st;
        }
        printf("查找学生信息如下:\n");
        printf("学号:%s,姓名:%s,班级:%s\n",temp->id,temp->name,temp->bj);
        printf("数学成绩:%d,英语成绩:%d,计算机成绩:%d\n",temp->sx,temp->yy,temp->jsj);
    }
    return temp;
}

void paiming(Stu **s)
{
    Stu *p,*q,*t,*r;
    q=(*s)->st;
    p=q->st;
    while(p!=NULL) 
    {
        if(p->jsj>=q->jsj) 
        { 
            p=p->st;
            q=q->st;
        } 
        else 
        {
            t=(*s)->st;
            r=*s;
            while((p->jsj)>(t->jsj)) 
            {
                r=t;
                t=t->st;
            }
            q->st=p->st;
            p->st=t;
            r->st=p;
            p=q->st;
        }
    }
        return;
}

void xiugai()
{
    char n;
    Stu * temp = chaxun();
    if(temp==NULL)
    printf("无可修改内容\n");
    else
    {
        int num;
        Repeat:
        printf("输入需要修改的内容\n");
        printf("1.学号--2.姓名--3班级\n");
        printf("4.数学成绩--5英语成绩--6计算机成绩\n");
        while 
            (scanf("%d", &num) != 1 || num < 0 || num > 6 )
        {
            printf("您的输入不正确,请重新输入:\n");
                fflush(stdin);
        }
            switch (num)
        {
              case 1:
                  printf("请输入修改的学号\n");
                  scanf("%s",temp->id);
                break;
              case 2:
                 printf("请输入修改的姓名\n");
                  scanf("%s,",temp->name);
                break;
             case 3:
                  printf("请输入修改的班级\n");
                  scanf("%s",temp->bj);
                break;
              case 4:
                 printf("请输入修改的数学成绩\n");
                  scanf("%d",&temp->sx);
                break;
              case 5:
                  printf("请输入修改的英语成绩\n");
                  scanf("%d",&temp->yy);
                break;
              case 6:
                  printf("请输入修改的计算机成绩\n");
                  scanf("%d",&temp->jsj);
                break;
        }
        printf("信息更改后如下:\n");
        printf("学号:%s,姓名:%s,班级:%d\n",temp->id,temp->name,temp->bj);
        printf("数学成绩:%d,英语成绩:%d,计算机成绩:%d\n",temp->sx,temp->yy,temp->jsj);
        printf("是否确认无误?(1or0)\n");
        scanf("%c", &n);
        if (n != '1') 
        goto Repeat;
        printf("您已确认,更改完成!\n");
    }
        return;
}

void shanchu()
{
    Stu * temp=chaxun();
    if(head==NULL||temp==NULL)
    {
        printf("无可删除内容\n");
    }
    else if (head == tail)
    {
        free(head);
        head = NULL;
        tail = NULL;
        printf("删除成功!\n");
    }    
    else if (temp == head)
    {
        head = head->st;
        free(temp);
        printf("删除成功!\n ");
    }    
    else if(temp==tail)
    {
        Stu * pt=head;
        while (pt->st->st)
            pt=pt->st;
        free(tail);
        tail = pt;
        tail -> st = NULL;
        printf("删除成功!\n ");
    }
   return;
}

void print()
{
    Stu * phead=head;
    if(phead==NULL)
    printf("暂无学生信息!\n");
    while (phead)
    {
        printf("学号:%s,姓名:%s,班级:%d\n", phead->id, phead->name, phead->bj);
        printf("数学成绩:%d,英语成绩:%d,计算机成绩:%d\n",phead->sx,phead->yy,phead->jsj);
        phead = phead -> st;
    }
    return;
}

int main(void)
{
    int num; char ch;
    do
    { 
        help();
        printf("请选择一个操作:\n");
        while 
            (scanf("%d", &num) != 1 || num < 0 || num > 6 )
        {
            printf("您的输入不正确,请重新输入:\n");
        }
        switch (num)
        {
              case 0:
                  printf("谢谢使用,再见!\n");
                  return 0;
              case 1:
                  input(); break;
              case 2:
                 chaxun(); break;
              case 3:
                paiming(); break;                 
              case 4:
                xiugai(); break;              
              case 5:
                  shanchu(); break;
              case 6:
                  print(); break;
        }
        printf("本次任务结束,回主菜单或退出程序:(1or0)\n"); 
        scanf(" %c", &ch);
    }
    while (ch == '1'); 
    printf("谢谢使用!再见\n");
    return 0;
}

 

有没有错误信息呢,贴出来更好定位问题。

贴代码请用专门的代码段,你这样很难复制

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

 也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html