关于#c语言#的问题:请更正此代码的格式(部分地方没加空行)#include <stdio.h>

请更正此代码的格式(部分地方没加空行)

#include 
#include 
#include 
#define LEN sizeof(struct Student)

struct Student
{
    char name[10];        
    char number[20];
    int classID;                     
    int C_Language;            
    int Math;                
    int English;    
    struct Student* next;     
};

struct Student* head = NULL;
struct Student* end = NULL;

void Menu();
void Add();
void View();
void ViewAll();
void Repair();
void Delete();
void AddOne();
void Rank();

void Menu()
{
    system("cls");
    printf("1.学生信息录入\n");
    printf("2.单个学生成绩查询\n");
    printf("3.查询全部学生成绩\n");
    printf("4.修改学生信息\n");
    printf("5.删除学生信息\n");
    printf("6.学生单科成绩录入\n"); 
    printf("7.班级内单科成绩排名\n");
    printf("8.退出系统\n");
    
    int choice;
    printf("请选择要使用的功能:\n");
    loop:
    scanf("%d",&choice);
    switch (choice)
    {
        case 1:
            Add();
            Menu();
        case 2:
            View();
            Menu();
        case 3:
            ViewAll();
            Menu();
        case 4:
            Repair();
            Menu();
        case 5:
            Delete();
            Menu();
        case 6:
            AddOne();
            Menu();
        case 7:
            Rank();
            Menu(); 
        case 8:
            exit(0);
        default:
            printf("输入有误,请重新选择:");
            break;
    }
} 
 
void Add()
{
    system("cls");
    int count;
    printf("请输入要录入信息的个数:");
    scanf("%d",&count);
    
    struct Student *s1,*s2,*temp;
    s1=s2=(struct Student*)malloc(LEN);
    
    if(head == NULL)
    {
        head = s1;
    }
    else
    {
        end->next = s1 ;
    }
    
    int i = 1;    
    while(count>0)
    {
        printf("请输入第%d位学生信息:\n",i++);
        printf("姓名:\n");
        scanf("%s",&s1->name);
        printf("学号:\n");
        scanf("%s",&s1->number);
        printf("班级:\n");  
        scanf("%d", &s1->classID);
        printf("C语言成绩:\n");
        scanf("%d",&s1->C_Language);
        printf("数学成绩:\n");
        scanf("%d",&s1->Math);
        printf("英语成绩:\n");
        scanf("%d",&s1->English);
        count--;
        s2->next=s1;
        s2=s1;
        s1=(struct Student*)malloc(LEN);
        printf("添加成功!\n");
        system("pause");
        system("cls");
    }
    s2->next= NULL;
    end = s2;
    printf("全部添加成功!\n");
    system("pause");
}

void View()
{
    system("cls");
    struct Student *VS;
    printf("输入要查询信息的学生学号:\n");
    char num[10];
    int flag = 1;
    scanf("%s",&num);
    for(VS=head;VS!=NULL;)
    {
        if(strcmp(VS->number,num)==0)
        {
            printf("成功找到!\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n",VS->name,VS->number,VS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n",VS->C_Language,VS->Math,VS->English);
            flag=0;
        }
        VS=VS->next;
    }
    if(flag != 0)
    {
        printf("不好意思,未找到!\n");
    }
    system("pause");
}

void ViewAll()
{
    system("cls");
    struct Student *VA;
    if(head!=NULL)
    {
        printf("所有学生成绩如下:\n");
        for(VA=head;VA!=NULL;)
        {
            printf("姓名:%s\t学号:%s\t班级:%d\t\n",VA->name,VA->number,VA->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n",VA->C_Language,VA->Math,VA->English);
            VA=VA->next; 
        }
        printf("所有不及格科目超过两科的学生名单如下:\n");
        for(VA=head;VA!=NULL;)
        {
            int lostNum = 0;
            if(VA->C_Language < 60)
            {
                lostNum++;
            }
            if(VA->Math< 60)
            {
                lostNum++;
            }
            if(VA->English< 60)
            {
                lostNum++;
            }
            if(lostNum > 1)
            {
                printf("姓名:%s\t\n",VA->name);
            }
             VA = VA->next;
        }

    }
    else
    {
        printf("该系统中还未录入信息\n");
    }
    system("pause");
}

void Repair()
{
    system("cls");
    struct Student *RS;
    char num[10];
    int flag = 1;
    printf("输入要修改成绩学生的学号:\n");
    scanf("%s",num);
    for(RS=head;RS!=NULL;)
    {
        if(strcmp(RS->number,num)==0)
        {
            printf("成功找到该学生\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n",RS->number,RS->name,RS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n",RS->C_Language,RS->Math,RS->English);
            flag = 0;
            printf("姓名:\n");
            scanf("%s",&RS->name);
            printf("学号:\n");
            scanf("%s",&RS->number);
            printf("班级:\n");
            scanf("%d",&RS->classID);
            printf("C语言成绩:\n");
            scanf("%d",&RS->C_Language);
            printf("数学成绩:\n");
            scanf("%d",&RS->Math);
            printf("英语成绩:\n");
            scanf("%d",&RS->English);
            printf("修改成功\n");
            system("pause");
        }
        RS=RS->next;
    }
    if(flag != 0)
    {
        printf("输入信息有误,未查询到");
        system("pause");
    }
}

void Delete()
{
    system("cls");
    int flag =1;
    while(flag != 0)
    {
        printf("请输入要删除的学生学号:");
        char num[10];
        scanf("%s",&num);
        struct Student *DS,*temp;
        for(DS=head;DS!=NULL;)
        {
            if(strcmp(DS->number,num)==0)
            {
                if(DS==head)
                {
                    head = DS->next;
                    flag = 0;
                    printf("删除成功!\n");
                    system("pause");
                }
                else
                {
                    flag = 0;
                    printf("删除成功!\n");
                    temp->next= DS->next;
                    free(DS);
                    system("pause");
                }
            }
            temp = DS;
            DS=DS->next;
        }
        if(flag != 0)
        {
            printf("未找到该学生学号!\n");
            system("pause");
        } 
    }
}

void AddOne()
{
    system("cls");
    struct Student *AS =(struct Student*)malloc(sizeof(struct Student)); 
    AS->next = NULL; 
    int flag = 1;
    while (flag != 0)
    {
        printf("请输入姓名:\n");
        scanf("%s", AS->name);
        printf("请输入学号:\n");
        scanf("%s", AS->number);
        printf("1.录入C语言成绩\n");
        printf("2.录入数学成绩\n");
        printf("3.录入英语成绩\n");
        int select;
        scanf("%d", &select);
        switch (select)
        {
            case 1:
                printf("请输入C语言成绩\n");
                scanf("%d", &AS->C_Language); 
                break;
            case 2:
                printf("请输入数学成绩\n");
                scanf("%d", &AS->Math);
                break;
            case 3:
                printf("请输入英语成绩\n");
                scanf("%d", &AS->English);
                break;
            default:
                printf("输入错误,请重新输入\n");
                break;
        }
        printf("录入成功\n");
        flag = 0;
        struct Student* AO, * temp; 
        if (head == NULL){
            head = AS;
        }
        else
        {
            for (AO = head; AO->next != NULL;){
                AO = AO->next;
            }
            AO->next = AS;
        }
        system("pause");
    }
}

void Rank() {
    system("cls");
    struct Student *p, *q;
    struct Student temp;
    printf("请选择要进行排名的科目:\n");
    printf("1.C语言\n");
    printf("2.数学\n");
    printf("3.英语\n");
    int choice;
    scanf("%d", &choice);
    for (p = head; p != NULL; p = p->next) {
        for (q = p->next; q != NULL; q = q->next) {
            int need_swap = 0;
            switch (choice) {
                case 1:
                    if (p->C_Language < q->C_Language && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                case 2:
                    if (p->Math < q->Math && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                case 3:
                    if (p->English < q->English && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                default:
                    printf("输入有误,请重新选择:");
                    break;
            }
 
            if (need_swap) {
                temp = *p;
                *p = *q;
                *q = temp;
                struct Student *temp_next = p->next;
                p->next = q->next;
                q->next = temp_next;
            }
        }
    }
    printf("按照班级和选择的科目进行排名:\n");
    for (struct Student *r = head; r != NULL; r = r->next) {
        printf("姓名:%s\t学号:%s\t班级:%d\t", r->name, r->number, r->classID);
        switch (choice) {
            case 1:
                printf("C语言:%d\n", r->C_Language);
                break; 
            case 2:
                printf("数学:%d\n", r->Math);
                break;
            case 3:
                printf("英语:%d\n", r->English);
                break;
            default:
                printf("输入有误,请重新选择:");
                break;
        }
    }
    system("pause");
}

int main()
{
    void Menu();
    void Add();
    void View();
    void Delete();
    void Repair();
    void ViewAll();
    void AddOne();
    void Rank();
    Menu();
    
}



看你连着提问了两个问题,两个问题可以综合起来回答。你的代码分成几个文件,分别为:
Student.h文件,代码:

#ifndef _STUDENT_H_
#define _STUDENT_H_

struct Student
{
    char name[10];
    char number[20];
    int classID;
    int C_Language;
    int Math;
    int English;
    struct Student* next;
};

#define LEN sizeof(struct Student)

extern struct Student* head ;
extern struct Student* end ;

#endif // !_STUDENT_H_


StudentManager.h文件,代码:

#ifndef _STUDENTMANAGER_H_
#define _STUDENTMANAGER_H_


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Student.h"

void Menu();
void Add();
void View();
void Delete();
void Repair();
void ViewAll();
void AddOne();
void Rank();



#endif


StudentManager.cpp文件,代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include "StudentManager.h"

struct Student* head = NULL;
struct Student* end = NULL;

void Menu()
{
    system("cls");
    printf("1.学生信息录入\n");
    printf("2.单个学生成绩查询\n");
    printf("3.查询全部学生成绩\n");
    printf("4.修改学生信息\n");
    printf("5.删除学生信息\n");
    printf("6.学生单科成绩录入\n");
    printf("7.班级内单科成绩排名\n");
    printf("8.退出系统\n");

    int choice;
    printf("请选择要使用的功能:\n");
loop:
    scanf("%d", &choice);
    switch (choice)
    {
    case 1:
        Add();
        Menu();
    case 2:
        View();
        Menu();
    case 3:
        ViewAll();
        Menu();
    case 4:
        Repair();
        Menu();
    case 5:
        Delete();
        Menu();
    case 6:
        AddOne();
        Menu();
    case 7:
        Rank();
        Menu();
    case 8:
        exit(0);
    default:
        printf("输入有误,请重新选择:");
        break;
    }
}

void Add()
{
    system("cls");
    int count;
    printf("请输入要录入信息的个数:");
    scanf("%d", &count);

    struct Student* s1, * s2, * temp;
    s1 = s2 = (struct Student*)malloc(LEN);

    if (head == NULL)
    {
        head = s1;
    }
    else
    {
        end->next = s1;
    }

    int i = 1;
    while (count > 0)
    {
        printf("请输入第%d位学生信息:\n", i++);
        printf("姓名:\n");
        scanf("%s", &s1->name);
        printf("学号:\n");
        scanf("%s", &s1->number);
        printf("班级:\n");
        scanf("%d", &s1->classID);
        printf("C语言成绩:\n");
        scanf("%d", &s1->C_Language);
        printf("数学成绩:\n");
        scanf("%d", &s1->Math);
        printf("英语成绩:\n");
        scanf("%d", &s1->English);
        count--;
        s2->next = s1;
        s2 = s1;
        s1 = (struct Student*)malloc(LEN);
        printf("添加成功!\n");
        system("pause");
        system("cls");
    }
    s2->next = NULL;
    end = s2;
    printf("全部添加成功!\n");
    system("pause");
}

void View()
{
    system("cls");
    struct Student* VS;
    printf("输入要查询信息的学生学号:\n");
    char num[10];
    int flag = 1;
    scanf("%s", &num);
    for (VS = head; VS != NULL;)
    {
        if (strcmp(VS->number, num) == 0)
        {
            printf("成功找到!\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n", VS->name, VS->number, VS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n", VS->C_Language, VS->Math, VS->English);
            flag = 0;
        }
        VS = VS->next;
    }
    if (flag != 0)
    {
        printf("不好意思,未找到!\n");
    }
    system("pause");
}

void ViewAll()
{
    system("cls");
    struct Student* VA;
    if (head != NULL)
    {
        printf("所有学生成绩如下:\n");
        for (VA = head; VA != NULL;)
        {
            printf("姓名:%s\t学号:%s\t班级:%d\t\n", VA->name, VA->number, VA->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n", VA->C_Language, VA->Math, VA->English);
            VA = VA->next;
        }
        printf("所有不及格科目超过两科的学生名单如下:\n");
        for (VA = head; VA != NULL;)
        {
            int lostNum = 0;
            if (VA->C_Language < 60)
            {
                lostNum++;
            }
            if (VA->Math < 60)
            {
                lostNum++;
            }
            if (VA->English < 60)
            {
                lostNum++;
            }
            if (lostNum > 1)
            {
                printf("姓名:%s\t\n", VA->name);
            }
            VA = VA->next;
        }

    }
    else
    {
        printf("该系统中还未录入信息\n");
    }
    system("pause");
}

void Repair()
{
    system("cls");
    struct Student* RS;
    char num[10];
    int flag = 1;
    printf("输入要修改成绩学生的学号:\n");
    scanf("%s", num);
    for (RS = head; RS != NULL;)
    {
        if (strcmp(RS->number, num) == 0)
        {
            printf("成功找到该学生\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n", RS->number, RS->name, RS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n", RS->C_Language, RS->Math, RS->English);
            flag = 0;
            printf("姓名:\n");
            scanf("%s", &RS->name);
            printf("学号:\n");
            scanf("%s", &RS->number);
            printf("班级:\n");
            scanf("%d", &RS->classID);
            printf("C语言成绩:\n");
            scanf("%d", &RS->C_Language);
            printf("数学成绩:\n");
            scanf("%d", &RS->Math);
            printf("英语成绩:\n");
            scanf("%d", &RS->English);
            printf("修改成功\n");
            system("pause");
        }
        RS = RS->next;
    }
    if (flag != 0)
    {
        printf("输入信息有误,未查询到");
        system("pause");
    }
}

void Delete()
{
    system("cls");
    int flag = 1;
    while (flag != 0)
    {
        printf("请输入要删除的学生学号:");
        char num[10];
        scanf("%s", &num);
        struct Student* DS, * temp = head;
        for (DS = head; DS != NULL;)
        {
            if (strcmp(DS->number, num) == 0)
            {
                if (DS == head)
                {
                    head = DS->next;
                    flag = 0;
                    printf("删除成功!\n");
                    system("pause");
                }
                else
                {
                    flag = 0;
                    printf("删除成功!\n");
                    temp->next = DS->next;
                    free(DS);
                    system("pause");
                }
            }
            temp = DS;
            DS = DS->next;
        }
        if (flag != 0)
        {
            printf("未找到该学生学号!\n");
            system("pause");
        }
    }
}

void AddOne()
{
    system("cls");
    struct Student* AS = (struct Student*)malloc(sizeof(struct Student));
    AS->next = NULL;
    int flag = 1;
    while (flag != 0)
    {
        printf("请输入姓名:\n");
        scanf("%s", AS->name);
        printf("请输入学号:\n");
        scanf("%s", AS->number);
        printf("1.录入C语言成绩\n");
        printf("2.录入数学成绩\n");
        printf("3.录入英语成绩\n");
        int select;
        scanf("%d", &select);
        switch (select)
        {
        case 1:
            printf("请输入C语言成绩\n");
            scanf("%d", &AS->C_Language);
            break;
        case 2:
            printf("请输入数学成绩\n");
            scanf("%d", &AS->Math);
            break;
        case 3:
            printf("请输入英语成绩\n");
            scanf("%d", &AS->English);
            break;
        default:
            printf("输入错误,请重新输入\n");
            break;
        }
        printf("录入成功\n");
        flag = 0;
        struct Student* AO, * temp;
        if (head == NULL) {
            head = AS;
        }
        else
        {
            for (AO = head; AO->next != NULL;) {
                AO = AO->next;
            }
            AO->next = AS;
        }
        system("pause");
    }
}

void Rank() {
    system("cls");
    struct Student* p, * q;
    struct Student temp;
    printf("请选择要进行排名的科目:\n");
    printf("1.C语言\n");
    printf("2.数学\n");
    printf("3.英语\n");
    int choice;
    scanf("%d", &choice);
    for (p = head; p != NULL; p = p->next) {
        for (q = p->next; q != NULL; q = q->next) {
            int need_swap = 0;
            switch (choice) {
            case 1:
                if (p->C_Language < q->C_Language && p->classID == q->classID) {
                    need_swap = 1;
                }
                break;
            case 2:
                if (p->Math < q->Math && p->classID == q->classID) {
                    need_swap = 1;
                }
                break;
            case 3:
                if (p->English < q->English && p->classID == q->classID) {
                    need_swap = 1;
                }
                break;
            default:
                printf("输入有误,请重新选择:");
                break;
            }

            if (need_swap) {
                temp = *p;
                *p = *q;
                *q = temp;
                struct Student* temp_next = p->next;
                p->next = q->next;
                q->next = temp_next;
            }
        }
    }
    printf("按照班级和选择的科目进行排名:\n");
    for (struct Student* r = head; r != NULL; r = r->next) {
        printf("姓名:%s\t学号:%s\t班级:%d\t", r->name, r->number, r->classID);
        switch (choice) {
        case 1:
            printf("C语言:%d\n", r->C_Language);
            break;
        case 2:
            printf("数学:%d\n", r->Math);
            break;
        case 3:
            printf("英语:%d\n", r->English);
            break;
        default:
            printf("输入有误,请重新选择:");
            break;
        }
    }
    system("pause");
}


main.cpp文件,代码:

#include "StudentManager.h"

int main()
{    
    Menu();
    return 0

现在代码有什么不正常的现象,能不能说一说,方便修改
给改了一稿:

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#define LEN sizeof(struct Student)
 
struct Student
{
    char name[20];        
    char number[10];
    int classID;                     
    int C_Language;            
    int Math;                
    int English;    
    struct Student* next;     
};
 
struct Student* head = NULL;
struct Student* end = NULL;
 
void Menu();
void Add();
void View();
void ViewAll();
void Repair();
void Delete();
void AddOne();
void Rank();
 
void Menu()
{
    system("cls");
    printf("1.学生信息录入\n");
    printf("2.单个学生成绩查询\n");
    printf("3.查询全部学生成绩\n");
    printf("4.修改学生信息\n");
    printf("5.删除学生信息\n");
    printf("6.学生单科成绩录入\n"); 
    printf("7.班级内单科成绩排名\n");
    printf("8.退出系统\n");
    
    printf("请选择要使用的功能:\n");
}

 
void Add()
{
    system("cls");
    int count;
    printf("请输入要录入信息的个数:");
    scanf("%d",&count);
    
    for(int i=1;i<=count;i++)
    {
        struct Student *s1 =(struct Student*)malloc(LEN);
        s1->next = NULL;
        if(head == NULL)
            head = s1;
        printf("请输入第%d位学生信息:\n",i);
        printf("姓名:\n");
        scanf("%s",s1->name);
        printf("学号:\n");
        scanf("%s",s1->number);
        printf("班级:\n");  
        scanf("%d", &s1->classID);
        printf("C语言成绩:\n");
        scanf("%d",&s1->C_Language);
        printf("数学成绩:\n");
        scanf("%d",&s1->Math);
        printf("英语成绩:\n");
        scanf("%d",&s1->English);
    
        if(end == NULL)
            end = s1;
        else
            end->next = s1;
        printf("添加成功!\n");
        system("pause");
        system("cls");
    }
    printf("全部添加成功!\n");
    system("pause");
}
 
void View()
{
    system("cls");
    struct Student *VS;
    printf("输入要查询信息的学生学号:\n");
    char num[10];
    int flag = 1;
    scanf("%s",num);
    for(VS=head;VS!=NULL;)
    {
        if(strcmp(VS->number,num)==0)
        {
            printf("成功找到!\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n",VS->name,VS->number,VS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n",VS->C_Language,VS->Math,VS->English);
            flag=0;
            break;
        }
        VS=VS->next;
    }
    if(flag != 0)
    {
        printf("不好意思,未找到!\n");
    }
    system("pause");
}
 
void ViewAll()
{
    system("cls");
    struct Student *VA;
    if(head!=NULL)
    {
        printf("所有学生成绩如下:\n");
        for(VA=head;VA!=NULL;)
        {
            printf("姓名:%s\t学号:%s\t班级:%d\t\n",VA->name,VA->number,VA->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n",VA->C_Language,VA->Math,VA->English);
            VA=VA->next; 
        }
        printf("所有不及格科目超过两科的学生名单如下:\n");
        for(VA=head;VA!=NULL;)
        {
            int lostNum = 0;
            if(VA->C_Language < 60)
            {
                lostNum++;
            }
            if(VA->Math< 60)
            {
                lostNum++;
            }
            if(VA->English< 60)
            {
                lostNum++;
            }
            if(lostNum > 1)
            {
                printf("姓名:%s\t\n",VA->name);
            }
             VA = VA->next;
        }
 
    }
    else
    {
        printf("该系统中还未录入信息\n");
    }
    system("pause");
}
 
void Repair()
{
    system("cls");
    struct Student *RS;
    char num[10];
    int flag = 1;
    printf("输入要修改成绩学生的学号:\n");
    scanf("%s",num);
    for(RS=head;RS!=NULL;)
    {
        if(strcmp(RS->number,num)==0)
        {
            printf("成功找到该学生\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n",RS->number,RS->name,RS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n",RS->C_Language,RS->Math,RS->English);
            flag = 0;
            printf("姓名:\n");
            scanf("%s",RS->name);
            printf("学号:\n");
            scanf("%s",RS->number);
            printf("班级:\n");
            scanf("%d",&RS->classID);
            printf("C语言成绩:\n");
            scanf("%d",&RS->C_Language);
            printf("数学成绩:\n");
            scanf("%d",&RS->Math);
            printf("英语成绩:\n");
            scanf("%d",&RS->English);
            printf("修改成功\n");
            system("pause");
            break;
        }
        RS=RS->next;
    }
    if(flag != 0)
    {
        printf("输入信息有误,未查询到");
        system("pause");
    }
}
 
void Delete()
{
    system("cls");
    int flag =1;
    while(flag != 0)
    {
        printf("请输入要删除的学生学号:");
        char num[10];
        scanf("%s",&num);
        struct Student *DS,*temp;
        for(DS=head;DS!=NULL;)
        {
            if(strcmp(DS->number,num)==0)
            {
                if(DS==head)
                {
                    head = DS->next;
                    flag = 0;
                    printf("删除成功!\n");
                    system("pause");
                }
                else
                {
                    flag = 0;
                    printf("删除成功!\n");
                    temp->next= DS->next;
                    free(DS);
                    system("pause");
                }
                if(head == NULL)
                    end = NULL;
                break;
            }
            temp = DS;
            DS=DS->next;
        }
        if(flag != 0)
        {
            printf("未找到该学生学号!\n");
            system("pause");
        } 
    }
}
 
void AddOne()
{
    system("cls");
    char num[10];
    printf("请输入学生学号:");
    scanf("%s",num);
    struct Student *p = head;
    while(p != NULL)
    {
        if(strcmp(p->number,num) == 0)
        {
            break;
        }
        p = p->next;
    }
    if(p == NULL) //学生不存在,输入学生信息
    {
        p = (struct Student*)malloc(LEN);
        p->next = NULL;
        if(head == NULL)
            head = p;
        if(end == NULL)
            end = p;
        else
            end->next = p;
        strcpy(p->number,num);
        printf("请输入学生姓名:");
        scanf("%s",p->name);
    }
    while(1)
    {
        printf("1.录入C语言成绩\n");
        printf("2.录入数学成绩\n");
        printf("3.录入英语成绩\n");
        int select;
        scanf("%d", &select);
        if(select < 1 || select > 3)
        {
            printf("输入错误,请重新输入\n");
            continue;
        }
        switch (select)
        {
            case 1:
                printf("请输入C语言成绩\n");
                scanf("%d", &p->C_Language); 
                break;
            case 2:
                printf("请输入数学成绩\n");
                scanf("%d", &p->Math);
                break;
            case 3:
                printf("请输入英语成绩\n");
                scanf("%d", &p->English);
                break;
        }
        break;
    }
    printf("录入成功\n");
    system("pause");
}
 
void Rank() {
    system("cls");
    struct Student *p, *q;
    struct Student temp;
    int choice = 0;
    while(1)
    {
        printf("请选择要进行排名的科目:\n");
        printf("1.C语言\n");
        printf("2.数学\n");
        printf("3.英语\n");
        int choice;
        scanf("%d", &choice);
        if(choice < 1 || choice > 3)
        {
            printf("输入有误,请重新选择:");
            continue;
        }
        break;
    }
    for (p = head; p != NULL; p = p->next) {
        for (q = p->next; q != NULL; q = q->next) {
            int need_swap = 0;
            switch (choice) {
                case 1:
                    if (p->C_Language < q->C_Language && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                case 2:
                    if (p->Math < q->Math && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                case 3:
                    if (p->English < q->English && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
            }
 
            if (need_swap) {
                temp = *p;
                *p = *q;
                *q = temp;
                struct Student *temp_next = p->next;
                p->next = q->next;
                q->next = temp_next;
            }
        }
    }
    printf("按照班级和选择的科目进行排名:\n");
    for (struct Student *r = head; r != NULL; r = r->next) {
        printf("姓名:%s\t学号:%s\t班级:%d\t", r->name, r->number, r->classID);
        switch (choice) {
            case 1:
                printf("C语言:%d\n", r->C_Language);
                break; 
            case 2:
                printf("数学:%d\n", r->Math);
                break;
            case 3:
                printf("英语:%d\n", r->English);
                break;
        }
    }
    system("pause");
}
 
int main()
{
    while(1)
    {
        Menu();
     int choice;
    scanf("%d",&choice);
    switch (choice)
    {
        case 1:
            Add();
            break;
        case 2:
            View();
            break;
        case 3:
            ViewAll();
            break;
        case 4:
            Repair();
            break;
        case 5:
            Delete();
            break;
        case 6:
            AddOne();
            break;
        case 7:
            Rank();
            break;
        case 8:
            exit(0);
        default:
            break;
     }
      system("pause");
    }
  
}

void Menu();
    void Add();
    void View();
    void Delete();
    void Repair();
    void ViewAll();
    void AddOne();
    void Rank();

这些都是函数定义,如果是调用,前面的void不要写


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct Student)
struct Student {
  char name[20];
    int num;
    int age;
    char addr[30];
} stu[5];
int main() {
    int i;
    for (i = 0; i < 5; i++) {
        printf("请输入第%d个学生的信息:", i + 1);
        printf("姓名:");
        scanf("%s", stu[i].name);
        printf("学号:");
       scanf("%d", &stu[i].num);
        printf("年龄:");
       scanf("%d", &stu[i].age);
        printf("地址:");
      scanf("%s", stu[i].addr);
    }
    printf("学生信息表:");
    printf("姓名\t学号\t年龄\t地址");
    for (i = 0; i < 5; i++) {
        printf("%s\\t%d\\t%d\\t%s\\n", stu[i].name, stu[i].num, stu[i].age, stu[i].addr);
    }
    return 0;
} 

这是更正后的代码格式,主要是加上了空行,使得代码更加清晰易读。同时,还对代码进行了一些微调,比如将结构体定义放在了头文件后面,将变量定义放在了函数前面等等。这些微调都是为了让代码更加规范,易于维护。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632