有没有人可以改一改,4点前需要,急

设计一个游泳运动员成绩管理系统,我自己零零碎碎的写了,但是有错,不怎么会改,改成正确的,能正常运行就可以




```#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct Student{   //每个运动员对应一个结构体 
    char ID[20];//编号 
    char Name[10];//姓名 
    float wy;//蛙泳金牌数 
    float yy;//仰泳金牌数 
    float dy;//蝶泳金牌数 
    float zyy;//自由泳金牌数 
    float All; //总金牌数
    float pro;//省份 
}students[1000];
int num=0; //计数器
void Welcome(),Password(),Menu(),Load(),Input(),Edit(),deletee(),insert(),display(),search(),sort(),Save();//要用到的函数 
void Copy(struct Student *arr,int i,int j)
{
    strcpy(arr[i].ID,arr[j].ID);
    strcpy(arr[i].Name,arr[j].Name);
    arr[i].wy = arr[j].wy;
    arr[i].yy = arr[j].yy;
    arr[i].dy = arr[j].dy;
    arr[i].zyy = arr[j].zyy;
    arr[i].All = arr[j].All;
    arr[i].pro = arr[j].pro;
}
int Student_SearchByName(char name[])//通过姓名来检索运动员
{
     int i;
     for (i=0;i<num;i++)
     {
         if (strcmp(students[i].Name,name)==0)  //通过strcmp函数来对比运动员姓名,找到返回在数组的位置 
         {
              return i;
       }
     }
     return -1;    //未找到返回 -1 
}
int Student_SearchByIndex(char id[])//通过编号来检索运动员信息
{
     int i;
     for (i=0;i<num;i++)
     {
         if (strcmp(students[i].ID,id)==0)  //通过strcmp函数来对比学生id,找到返回位置 
         {
              return i;
         }  
     }
     return -1;   //未找到返回 -1 
}

void Student_DisplaySingle(int index)//输出表头
{
     printf("%10s%10s%8s%8s%8s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
     printf("-\n");
     printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",stud
ents[index].ID,students[index].Name,
              students[index].wy,students[index].yy,students[index].dy,students[index].zyy,students[index].All,students[index].pro);
}

void Welcome()// 欢迎界面函数
{   system("color F5"); //设置背景色为亮白色,字体颜色为紫色
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|                   欢迎进入                   |\n");
    printf("\t\t|             游泳运动员成绩管理系统           |\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|         设计者:才小呆                       |\n");
    printf("\t\t|----------------------------------------------|\n");
}
void Password()//输入密码 
{
   char mm[20];
   printf("\n\n\n");
   printf("\t\t 请输入登录密码:");
   gets(mm);
   if(strcmp(mm,"00")==0)//判断两个字符串是否相等(不能直接用“==”,只能用字符串比较函数)
      Menu();
   else
      {
          printf("\n");
        printf("\t\t 输入密码有误,请重新输入......\n");
        Password();
      }
}
void Menu() //菜单
{    int i;
    while(1){
    Load();
    system("cls");
    printf("\t|--------------------------------------------------|\n");
    printf("\t|                                                  |\n");
    printf("\t|                 运动员成绩管理                   |\n");
    printf("\t|                                                  |\n");
    printf("\t|     1.录入运动员信息     2.修改运动员信息        |\n");
    printf("\t|                                                  |\n");
    printf("\t|     3.删除运动员信息     4.插入运动员信息        |\n");
    printf("\t|                                                  |\n");
    printf("\t|     5.显示运动员信息     6.查询运动员信息        |\n");
    printf("\t|                                                  |\n");
    printf("\t|     7.按总金牌数排序     0.退出系统              |\n"); 
    printf("\t|                                                  |\n"); 
    printf("\t|--------------------------------------------------|\n");  
    printf("\t请在(0—7)选择要进行的操作!\n"); //菜单的主页面
    scanf("%d",&i);
        switch(i){
       case 1:Input();break;
       case 2:Edit();break;
       case 3:deletee();break;
       case 4:insert();break;
       case 5:display();break;
       case 6:search();break;
       case 7:sort();break;
       case 0:exit(0);
       default:  ;
    }
    Save();
}
     return; 
} 

void Input()//利用循环录入运动员信息
{
     while(1)
     {
         printf("请输入编号:");
         scanf("%s",&students[num].ID);
         getchar();
         printf("请输入姓名:");
         scanf("%s",&students[num].Name);
         getchar();
         printf("请输入蛙泳金牌数:");
         scanf("%f",&students[num].wy);
         getchar();
         printf("请输入仰泳金牌数:");
         scanf("%f",&students[num].yy);
         getchar();
         printf("请输入蝶泳金牌数:");
         scanf("%f",&students[num].dy);
         getchar();
         printf("请输入自由泳金牌数:");
         scanf("%f",&students[num].zyy); 
         getchar();
         printf("请输入省份:");
         scanf("%f",&students[num].pro); 
         getchar();
          //依次输入各项数据 
         students[num].All=students[num].wy+students[num].yy+students[num].dy+students[num].zyy;    //输完数据后自动计算总金牌数 
         if(Student_SearchByIndex(students[num].ID) == -1)
         {
             num++;  //移向下一个位置 
         }
         else
         {
             printf("编号重复,输入数据无效 !!!\n");
         }
         
          printf("是否继续?(y/n)");
         if (getchar()=='n')
         {
              break;
         }
     }
}
void Edit()//修改成绩
{
      while(1)
     {
         char id[20];
         int index;
         printf("请输入要修改的运动员的编号:");
         scanf("%s",&id);
         getchar();
         index=Student_SearchByIndex(id);  //调用搜查id函数,根据其返回值确定位置 
         if (index==-1)
         {
              printf("运动员不存在!\n");
         }
         else
         {
              printf("你要修改的运动员信息为:\n");
              Student_DisplaySingle(index);
              printf("-- 请输入新值--\n");
              printf("请输入编号:");
              scanf("%s",&students[index].ID);
              getchar();
              printf("请输入姓名:");
              scanf("%s",&students[index].Name);
              getchar();
              printf("请输入蛙泳金牌数:");
              scanf("%f",&students[index].wy);
              getchar();
              printf("请输入仰泳金牌数:");
              scanf("%f",&students[index].yy);
              getchar();
              printf("请输入蝶泳金牌数:");
              scanf("%f",&students[index].dy);
              getchar();
              printf("请输入自由泳金牌数:");
              scanf("%f",&students[index].zyy); 
              getchar();
                printf("请输入省份:");
              scanf("%f",&students[index].pro); 
              getchar(); //重新录入一套新的数据替代 
              students[index].All=students[index].wy+students[index].yy+students[index].dy+students[index].zyy;
         }
         printf("是否继续?(y/n)");
         if (getchar()=='n')
         {
              break;
         }
     }
}
void deletee()//删除运动员信息
{
      int i;
     while(1)
     {
         char id[20];
         int index;
         printf("请输入要删除的运动员的编号:");
         scanf("%s",&id);
         getchar();
         index=Student_SearchByIndex(id);   //调用搜查id函数,根据其返回值确定位置 
         if (index==-1)
         {
              printf("运动员不存在!\n");
         }
         else
         {
              printf("你要删除的运动员信息为:\n");
              Student_DisplaySingle(index);
              printf("是否真的要删除?(y/n)");
              if (getchar()=='y')
              {
                   for (i=index;i<num-1;i++)
                   {
                          Copy(students,i,i+1);
                       //students[i]=students[i+1];    //把后边的对象都向前移动
                   }
                   num--;
              }
             getchar();
         }
         printf("是否继续?(y/n)");
         if (getchar()=='n')
         {
              break;
         }
     }
}
void insert()//指定位置插入学生信息
{
        int a,b,c;
        printf("请输入你要插入的位置");
        scanf("%d",&a);
        if(a>num) {
        printf("输入的位置有误,请重新输入,当前共%d条数据\n",num); 
        scanf("%d",&a);}
 
         b=num-1;
         for(;b>=a-1;b--)
         {
             //strcpy(students[b+1].ID,students[b].ID);
             //strcpy(students[b+1].Name,students[b].Name);
             //students[b+1].wy=students[b].wy;
             //students[b+1].yy=students[b].yy;
             //students[b+1].dy=students[b].dy;
             //students[b+1].zyy=students[b].zyy;
             //students[b+1].All=students[b].All;
             //students[b+1].pro=students[b].pro;  
            Copy(students,b+1,b); //根据其输入的位置,将其及以后的数据向后移动一个位置 
             
         }
         num++;
         printf("请输入编号:");
         scanf("%s",&students[a-1].ID);
         getchar();
         printf("请输入姓名:");
         scanf("%s",&students[a-1].Name);
         getchar();
         printf("请输入蛙泳金牌数:");
         scanf("%f",&students[a-1].wy);
         getchar();
         printf("请输入仰泳金牌数:");
         scanf("%f",&students[a-1].yy);
         getchar();
         printf("请输入蝶泳金牌数:");
         scanf("%f",&students[a-1].dy);
         getchar();
         printf("请输入自由泳金牌数:");
         scanf("%f",&students[a-1].zyy); 
         getchar();
         printf("请输入省份:");
         scanf("%f",&students[a-1].pro); 
         getchar();
         //输入新数据 
         students[a-1].All=students[a-1].wy+students[a-1].yy+students[a-1].dy+students[a-1].zyy;
 
}
void display()//显示已录入的运动员信息
{
     int a;
     printf("%10s%10s%8s%8s%8s%8s%10s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
     printf("-------------------------------------------------------------\n");
     for (a=0;a<num;a++)
     {
         printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",students[a].ID,students[a].Name,
              students[a].wy,students[a].yy,students[a].dy,students[a].zyy,students[a].All,students[a].pro);
     }
}
void search()//查询运动员信息
{
     while(1)
     {
         char name[20];
         int index;
         printf("请输入要查询的运动员的姓名:");
         scanf("%s",&name);
         getchar();
         index=Student_SearchByName(name);   //调用搜查name函数,根据其返回值确定位置 
         if (index==-1)
         {
              printf("运动员不存在!\n");
         }
         else
         {
              printf("你要查询的运动员信息为:\n");
              Student_DisplaySingle(index);
         }
         printf("是否继续?(y/n)");
         if (getchar()=='n')
         {
              break;
         }
     }
}

void sort()//根据总金牌数排序
{
     int i,j;
     //struct students tmp;
     for (i=0;i<num;i++)
     {
         students[i].All=students[i].wy+students[i].yy+students[i].dy+students[i].zyy;
     }
     for (i=0;i<num;i++)
     {
         for (j=1;j<num-i;j++)
         {
              if (students[j-1].All<students[j].All)
              {
                  
                   Copy(students,num,j-1);
                   Copy(students,j-1,j);
                   Copy(students,j,num); 
                   //tmp=students[j-1];
                   //students[j-1]=students[j];
                   //students[j]=tmp;      //冒泡排序 
            }  
         }
     }
     int a;
     printf("%10s%10s%8s%8s%8s%8s%10s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
     printf("-------------------------------------------------------------\n");
     for (a=0;a<num;a++)
     {
         printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",students[a].ID,students[a].Name,
              students[a].wy,students[a].yy,students[a].dy,students[a].zyy,students[a].All,students[a].pro);
     }
} 
void Save()
{
    FILE*fp = fopen("temp.txt","w+");
    fprintf(fp,"%d\n",num);
    for(int i = 0 ; i< num ;i++)
    {
        fprintf(fp,"%s %s %f %f %f %f %f %f\n",students[i].ID,students[i].Name,students[i].wy,students[i].yy,students[i].dy,students[i].zyy,students[i].All,students[i].pro);
    }
    fclose(fp);
}
void Load()
{
    FILE*fp = fopen("temp.txt","r");
    fscanf(fp,"%d",&num);
    for(int i = 0 ; i< num ;i++)
    {
        fscanf(fp,"%s %s %f %f %f %f %f %f\n",students[i].ID,students[i].Name,&students[i].wy,&students[i].yy,&students[i].dy,&students[i].zyy,&students[i].All,&students[i].pro);
    }
    fclose(fp);
} 

修改完善如下,供参考:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
struct Student {   //每个运动员对应一个结构体 
    char ID[20];//编号 
    char Name[10];//姓名 
    float wy;//蛙泳金牌数 
    float yy;//仰泳金牌数 
    float dy;//蝶泳金牌数 
    float zyy;//自由泳金牌数 
    float All; //总金牌数
    char  pro[32]; //float pro;//省份 
}students[1000];
int num = 0; //计数器
void Welcome(), Password(), Menu(), Load(), Input(), Edit(), deletee(),
                           insert(), display(), search(), sort(), Save();//要用到的函数 
void Copy(struct Student* arr, int i, int j)
{
    strcpy(arr[i].ID, arr[j].ID);
    strcpy(arr[i].Name, arr[j].Name);
    arr[i].wy = arr[j].wy;
    arr[i].yy = arr[j].yy;
    arr[i].dy = arr[j].dy;
    arr[i].zyy = arr[j].zyy;
    arr[i].All = arr[j].All;
    strcpy(arr[i].pro, arr[j].pro);//arr[i].pro = arr[j].pro;
}
int Student_SearchByName(char name[])//通过姓名来检索运动员
{
    int i;
    for (i = 0; i < num; i++)
    {
        if (strcmp(students[i].Name, name) == 0)  //通过strcmp函数来对比运动员姓名,找到返回在数组的位置 
        {
            return i;
        }
    }
    return -1;    //未找到返回 -1 
}
int Student_SearchByIndex(char id[])//通过编号来检索运动员信息
{
    int i;
    for (i = 0; i < num; i++)
    {
        if (strcmp(students[i].ID, id) == 0)  //通过strcmp函数来对比学生id,找到返回位置 
        {
            return i;
        }
    }
    return -1;   //未找到返回 -1 
}

void Student_DisplaySingle(int index)//输出表头
{
    printf("%s %s %s %s %s %s %s %s\n", "编号", "姓名", "蛙泳金牌数", "仰泳金牌数 ", 
                               "蝶泳金牌数 ", "自由泳金牌数 ", "总成绩", "省份");
    printf("-\n");
    printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%s\n", students[index].ID, students[index].Name,
                   students[index].wy, students[index].yy, students[index].dy, students[index].zyy, 
                   students[index].All, students[index].pro);
}
void Welcome()// 欢迎界面函数
{
    system("color F5"); //设置背景色为亮白色,字体颜色为紫色
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|                   欢迎进入                   |\n");
    printf("\t\t|             游泳运动员成绩管理系统           |\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|         设计者:才小呆                       |\n");
    printf("\t\t|----------------------------------------------|\n");
}
void Password()//输入密码 
{
    char mm[20];
    printf("\n\n\n");
    printf("\t\t 请输入登录密码:");
    gets_s(mm);
    if (strcmp(mm, "00") == 0)//判断两个字符串是否相等(不能直接用“==”,只能用字符串比较函数)
        Menu();
    else
    {
        printf("\n");
        printf("\t\t 输入密码有误,请重新输入......\n");
        Password();
    }
}
void Menu() //菜单
{
    int i;
    while (1) {
        Load();
        system("cls");
        printf("\t|--------------------------------------------------|\n");
        printf("\t|                                                  |\n");
        printf("\t|                 运动员成绩管理                   |\n");
        printf("\t|                                                  |\n");
        printf("\t|     1.录入运动员信息     2.修改运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     3.删除运动员信息     4.插入运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     5.显示运动员信息     6.查询运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     7.按总金牌数排序     0.退出系统              |\n");
        printf("\t|                                                  |\n");
        printf("\t|--------------------------------------------------|\n");
        printf("\t请在(0—7)选择要进行的操作!\n"); //菜单的主页面
        scanf("%d", &i);
        switch (i) {
        case 1:Input(); break;
        case 2:Edit(); break;
        case 3:deletee(); break;
        case 4:insert(); break;
        case 5:display(); break;
        case 6:search(); break;
        case 7:sort(); break;
        case 0:exit(0);
        default:;
        }
        Save();
    }
    return;
}
void Input()//利用循环录入运动员信息
{
    while (1)
    {
        printf("请输入编号:");
        scanf("%s", students[num].ID); //scanf("%s", &students[num].ID);
        getchar();
        printf("请输入姓名:");
        scanf("%s", students[num].Name); //scanf("%s", &students[num].Name);
        getchar();
        printf("请输入蛙泳金牌数:");
        scanf("%f", &students[num].wy);
        getchar();
        printf("请输入仰泳金牌数:");
        scanf("%f", &students[num].yy);
        getchar();
        printf("请输入蝶泳金牌数:");
        scanf("%f", &students[num].dy);
        getchar();
        printf("请输入自由泳金牌数:");
        scanf("%f", &students[num].zyy);
        getchar();
        printf("请输入省份:");
        scanf("%s", students[num].pro);//?
        getchar();
        //依次输入各项数据 
        students[num].All = students[num].wy + students[num].yy + students[num].dy + students[num].zyy;  //输完数据后自动计算总金牌数 
        if (Student_SearchByIndex(students[num].ID) == -1)
        {
            num++;  //移向下一个位置 
        }
        else
        {
            printf("编号重复,输入数据无效 !!!\n");
        }
        printf("是否继续?(y/n)");
        if ((getchar()) == 'n')
        {
            break;
        }
    }
}
void Edit()//修改成绩
{
    while (1)
    {
        char id[20];
        int index;
        printf("请输入要修改的运动员的编号:");
        scanf("%s", id);   //scanf("%s", &id);
        getchar();
        index = Student_SearchByIndex(id);  //调用搜查id函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要修改的运动员信息为:\n");
            Student_DisplaySingle(index);
            printf("-- 请输入新值--\n");
            printf("请输入编号:");
            scanf("%s", students[index].ID); //scanf("%s", &students[index].ID);
            getchar();
            printf("请输入姓名:");
            scanf("%s", students[index].Name);//scanf("%s", &students[index].Name);
            getchar();
            printf("请输入蛙泳金牌数:");
            scanf("%f", &students[index].wy);
            getchar();
            printf("请输入仰泳金牌数:");
            scanf("%f", &students[index].yy);
            getchar();
            printf("请输入蝶泳金牌数:");
            scanf("%f", &students[index].dy);
            getchar();
            printf("请输入自由泳金牌数:");
            scanf("%f", &students[index].zyy);
            getchar();
            printf("请输入省份:");
            scanf("%s", students[index].pro);
            getchar(); //重新录入一套新的数据替代 
            students[index].All = students[index].wy + students[index].yy + students[index].dy + students[index].zyy;
        }
        printf("是否继续?(y/n)");
        if ((getchar()) == 'n')
        {
            break;
        }
    }
}
void deletee()//删除运动员信息
{
    int i;
    while (1)
    {
        char id[20];
        int index;
        printf("请输入要删除的运动员的编号:");
        scanf("%s", id); //scanf("%s", &id);
        getchar();
        index = Student_SearchByIndex(id);//调用搜查id函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要删除的运动员信息为:\n");
            Student_DisplaySingle(index);
            printf("是否真的要删除?(y/n)");
            if ((getchar()) == 'y')
            {
                for (i = index; i < num - 1; i++)
                {
                    Copy(students, i, i + 1);
                    //students[i]=students[i+1]; //把后边的对象都向前移动
                }
                num--;
            }
            getchar();
        }
        printf("是否继续?(y/n)");
        if ((getchar()) == 'n')
        {
            break;
        }
    }
}
void insert()//指定位置插入学生信息
{
    int a, b, c;
    printf("请输入你要插入的位置");
    scanf("%d", &a);
    if (a > num) {
        printf("输入的位置有误,请重新输入,当前共%d条数据\n", num);
        scanf("%d", &a);
    }
    b = num - 1;
    for (; b >= a - 1; b--)
    {
        //strcpy(students[b+1].ID,students[b].ID);
        //strcpy(students[b+1].Name,students[b].Name);
        //students[b+1].wy=students[b].wy;
        //students[b+1].yy=students[b].yy;
        //students[b+1].dy=students[b].dy;
        //students[b+1].zyy=students[b].zyy;
        //students[b+1].All=students[b].All;
        //students[b+1].pro=students[b].pro;  
        Copy(students, b + 1, b); //根据其输入的位置,将其及以后的数据向后移动一个位置 
    }
    num++;
    printf("请输入编号:");
    scanf("%s", students[a - 1].ID); //scanf("%s", &students[a - 1].ID);
    getchar();
    printf("请输入姓名:");
    scanf("%s", students[a - 1].Name); //scanf("%s", &students[a - 1].Name);
    getchar();
    printf("请输入蛙泳金牌数:");
    scanf("%f", &students[a - 1].wy);
    getchar();
    printf("请输入仰泳金牌数:");
    scanf("%f", &students[a - 1].yy);
    getchar();
    printf("请输入蝶泳金牌数:");
    scanf("%f", &students[a - 1].dy);
    getchar();
    printf("请输入自由泳金牌数:");
    scanf("%f", &students[a - 1].zyy);
    getchar();
    printf("请输入省份:");
    scanf("%s", students[a - 1].pro);
    getchar();
    //输入新数据 
    students[a - 1].All = students[a - 1].wy + students[a - 1].yy + students[a - 1].dy + students[a - 1].zyy;

}
void display()//显示已录入的运动员信息
{
    int a;
    printf("%s %s %s %s %s %s %s %s\n", "编号", "姓名", "蛙泳金牌数", "仰泳金牌数 ",
                                        "蝶泳金牌数 ", "自由泳金牌数 ", "总成绩", "省份");
    printf("-------------------------------------------------------------\n");
    for (a = 0; a < num; a++)
    {
        printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%s\n", students[a].ID, students[a].Name,
            students[a].wy, students[a].yy, students[a].dy, students[a].zyy, students[a].All, students[a].pro);
    }
    printf("按任意键继续...");
    _getch();
}
void search()//查询运动员信息
{
    while (1)
    {
        char name[20];
        int index;
        printf("请输入要查询的运动员的姓名:");
        scanf("%s", name);  //scanf("%s", &name);
        getchar();
        index = Student_SearchByName(name); //调用搜查name函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要查询的运动员信息为:\n");
            Student_DisplaySingle(index);
        }
        printf("是否继续?(y/n)");
        if ((getchar()) == 'n')
        {
            break;
        }
    }
}
void sort()//根据总金牌数排序
{
    int i, j;
    //struct students tmp;
    for (i = 0; i < num; i++)
    {
        students[i].All = students[i].wy + students[i].yy + students[i].dy + students[i].zyy;
    }
    for (i = 0; i < num; i++)
    {
        for (j = 1; j < num - i; j++)
        {
            if (students[j - 1].All < students[j].All)
            {

                Copy(students, num, j - 1);
                Copy(students, j - 1, j);
                Copy(students, j, num);
                //tmp=students[j-1];
                //students[j-1]=students[j];
                //students[j]=tmp;      //冒泡排序 
            }
        }
    }
    int a;
    printf("%s %s %s %s %s %s %s %s\n", "编号", "姓名", "蛙泳金牌数", "仰泳金牌数 ", 
                                    "蝶泳金牌数 ", "自由泳金牌数 ", "总成绩", "省份");
    printf("-------------------------------------------------------------\n");
    for (a = 0; a < num; a++)
    {
        printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%s\n", students[a].ID, students[a].Name,
            students[a].wy, students[a].yy, students[a].dy, students[a].zyy, students[a].All, students[a].pro);
    }
    printf("按任意键继续...");
    _getch();
}
void Save()
{
    FILE* fp = fopen("temp.txt", "w+");
    fprintf(fp, "%d\n", num);
    for (int i = 0; i < num; i++)
    {
        fprintf(fp, "%s %s %f %f %f %f %f %s\n", students[i].ID, students[i].Name, students[i].wy,
                 students[i].yy, students[i].dy, students[i].zyy, students[i].All, students[i].pro);
    }
    fclose(fp);
}
void Load()
{
    FILE* fp = fopen("temp.txt", "r");
    if (fp == NULL) {
        printf("Open file fail!\n"); //修改
        return;
    }
    fscanf(fp, "%d", &num);
    for (int i = 0; i < num; i++)
    {
        fscanf(fp, "%s %s %f %f %f %f %f %s\n", students[i].ID, students[i].Name, &students[i].wy, 
            &students[i].yy, &students[i].dy, &students[i].zyy, &students[i].All, &students[i].pro);
    }
    fclose(fp);
}
int main()
{
    Welcome();
    Password();
    return 0;
}

img

试一下我的是不是你想要的

 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
struct Student    //每个运动员对应一个结构体
{
    char ID[20];//编号
    char Name[10];//姓名
    float wy;//蛙泳金牌数
    float yy;//仰泳金牌数
    float dy;//蝶泳金牌数
    float zyy;//自由泳金牌数
    float All; //总金牌数
    char pro[64];//省份
} students[1000];
int num=0; //计数器
void Welcome(),Password(),Menu(),Load(),Input(),Edit(),deletee(),insert(),display(),search(),sort(),Save();//要用到的函数
void Copy(struct Student *arr,int i,int j)
{
    strcpy(arr[i].ID,arr[j].ID);
    strcpy(arr[i].Name,arr[j].Name);
    arr[i].wy = arr[j].wy;
    arr[i].yy = arr[j].yy;
    arr[i].dy = arr[j].dy;
    arr[i].zyy = arr[j].zyy;
    arr[i].All = arr[j].All;
    arr[i].pro = arr[j].pro;
}
int Student_SearchByName(char name[])//通过姓名来检索运动员
{
    int i;
    for (i=0; i<num; i++)
    {
        if (strcmp(students[i].Name,name)==0)  //通过strcmp函数来对比运动员姓名,找到返回在数组的位置
        {
            return i;
        }
    }
    return -1;    //未找到返回 -1
}
int Student_SearchByIndex(char id[])//通过编号来检索运动员信息
{
    int i;
    for (i=0; i<num; i++)
    {
        if (strcmp(students[i].ID,id)==0)  //通过strcmp函数来对比学生id,找到返回位置
        {
            return i;
        }
    }
    return -1;   //未找到返回 -1
}
 
void Student_DisplaySingle(int index)//输出表头
{
    printf("%10s%10s%8s%8s%8s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
    printf("-\n");
    printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",students[index].ID,students[index].Name,
           students[index].wy,students[index].yy,students[index].dy,students[index].zyy,students[index].All,students[index].pro);
}
void Welcome()// 欢迎界面函数
{
    system("color F5"); //设置背景色为亮白色,字体颜色为紫色
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|                   欢迎进入                   |\n");
    printf("\t\t|             游泳运动员成绩管理系统           |\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|         设计者:才小呆                       |\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|----------------输入任意键进入系统--------------|\n");

    system("pause");
    Password();

}
void Password()//输入密码
{
    char mm[20];
    printf("\n\n\n");
    printf("\t\t 请输入登录密码:");
    gets(mm);
    if(strcmp(mm,"00")==0)//判断两个字符串是否相等(不能直接用“==”,只能用字符串比较函数)
        Menu();
    else
    {
        printf("\n");
        printf("\t\t 输入密码有误,请重新输入......\n");
        Password();
    }
}
void Menu() //菜单
{
    int i;
    while(1)
    {
        Load();
        
        printf("\t|--------------------------------------------------|\n");
        printf("\t|                                                  |\n");
        printf("\t|                 运动员成绩管理                   |\n");
        printf("\t|                                                  |\n");
        printf("\t|     1.录入运动员信息     2.修改运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     3.删除运动员信息     4.插入运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     5.显示运动员信息     6.查询运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     7.按总金牌数排序     0.退出系统              |\n");
        printf("\t|                                                  |\n");
        printf("\t|--------------------------------------------------|\n");
        printf("\t请在(0—7)选择要进行的操作!\n"); //菜单的主页面
        scanf("%d",&i);
        system("cls");
        switch(i)
        {
            case 1:
                Input();
                break;
            case 2:
                Edit();
                break;
            case 3:
                deletee();
                break;
            case 4:
                insert();
                break;
            case 5:
                display();
                break;
            case 6:
                search();
                break;
            case 7:
                sort();
                break;
            case 0:
                exit(0);
            default:
                ;
        }
        Save();
    }
    return;
}
void Input()//利用循环录入运动员信息
{
    while(1)
    {
        printf("请输入编号:");
        scanf("%s",&students[num].ID);
        getchar();
        printf("请输入姓名:");
        scanf("%s",&students[num].Name);
        getchar();
        printf("请输入蛙泳金牌数:");
        scanf("%f",&students[num].wy);
        getchar();
        printf("请输入仰泳金牌数:");
        scanf("%f",&students[num].yy);
        getchar();
        printf("请输入蝶泳金牌数:");
        scanf("%f",&students[num].dy);
        getchar();
        printf("请输入自由泳金牌数:");
        scanf("%f",&students[num].zyy);
        getchar();
        printf("请输入省份:");
        scanf("%s",&students[num].pro);
        getchar();
        //依次输入各项数据
        students[num].All=students[num].wy+students[num].yy+students[num].dy+students[num].zyy;    //输完数据后自动计算总金牌数
        if(Student_SearchByIndex(students[num].ID) == -1)
        {
            num++;  //移向下一个位置
        }
        else
        {
            printf("编号重复,输入数据无效 !!!\n");
        }
        fflush(stdin);
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void Edit()//修改成绩
{
    while(1)
    {
        char id[20];
        int index;
        printf("请输入要修改的运动员的编号:");
        scanf("%s",&id);
        getchar();
        index=Student_SearchByIndex(id);  //调用搜查id函数,根据其返回值确定位置
        if (index==-1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要修改的运动员信息为:\n");
            Student_DisplaySingle(index);
            printf("-- 请输入新值--\n");
            printf("请输入编号:");
            scanf("%s",&students[index].ID);
            getchar();
            printf("请输入姓名:");
            scanf("%s",&students[index].Name);
            getchar();
            printf("请输入蛙泳金牌数:");
            scanf("%f",&students[index].wy);
            getchar();
            printf("请输入仰泳金牌数:");
            scanf("%f",&students[index].yy);
            getchar();
            printf("请输入蝶泳金牌数:");
            scanf("%f",&students[index].dy);
            getchar();
            printf("请输入自由泳金牌数:");
            scanf("%f",&students[index].zyy);
            getchar();
            printf("请输入省份:");
            scanf("%s",&students[index].pro);
            getchar(); //重新录入一套新的数据替代
            students[index].All=students[index].wy+students[index].yy+students[index].dy+students[index].zyy;
        }
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void deletee()//删除运动员信息
{
    int i;
    while(1)
    {
        char id[20];
        int index;
        printf("请输入要删除的运动员的编号:");
        scanf("%s",&id);
        getchar();
        index=Student_SearchByIndex(id);   //调用搜查id函数,根据其返回值确定位置
        if (index==-1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要删除的运动员信息为:\n");
            Student_DisplaySingle(index);
            printf("是否真的要删除?(y/n)");
            if (getchar()=='y')
            {
                for (i=index; i<num-1; i++)
                {
                    Copy(students,i,i+1);
                    //students[i]=students[i+1];    //把后边的对象都向前移动
                }
                num--;
            }
            getchar();
        }
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void insert()//指定位置插入学生信息
{
    int a,b,c;
    printf("请输入你要插入的位置");
    scanf("%d",&a);
    if(a>num)
    {
        printf("输入的位置有误,请重新输入,当前共%d条数据\n",num);
        scanf("%d",&a);
    }
 
    b=num-1;
    for(; b>=a-1; b--)
    {
        //strcpy(students[b+1].ID,students[b].ID);
        //strcpy(students[b+1].Name,students[b].Name);
        //students[b+1].wy=students[b].wy;
        //students[b+1].yy=students[b].yy;
        //students[b+1].dy=students[b].dy;
        //students[b+1].zyy=students[b].zyy;
        //students[b+1].All=students[b].All;
        //students[b+1].pro=students[b].pro;
        Copy(students,b+1,b); //根据其输入的位置,将其及以后的数据向后移动一个位置
 
    }
    num++;
    printf("请输入编号:");
    scanf("%s",&students[a-1].ID);
    getchar();
    printf("请输入姓名:");
    scanf("%s",&students[a-1].Name);
    getchar();
    printf("请输入蛙泳金牌数:");
    scanf("%f",&students[a-1].wy);
    getchar();
    printf("请输入仰泳金牌数:");
    scanf("%f",&students[a-1].yy);
    getchar();
    printf("请输入蝶泳金牌数:");
    scanf("%f",&students[a-1].dy);
    getchar();
    printf("请输入自由泳金牌数:");
    scanf("%f",&students[a-1].zyy);
    getchar();
    printf("请输入省份:");
    scanf("%s",&students[a-1].pro);
    getchar();
    //输入新数据
    students[a-1].All=students[a-1].wy+students[a-1].yy+students[a-1].dy+students[a-1].zyy;
 
}
void display()//显示已录入的运动员信息
{
    int a;
    printf("%10s%10s%8s%8s%8s%8s%10s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
    printf("-------------------------------------------------------------\n");
    for (a=0; a<num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",students[a].ID,students[a].Name,
               students[a].wy,students[a].yy,students[a].dy,students[a].zyy,students[a].All,students[a].pro);
    }
}
void search()//查询运动员信息
{
    while(1)
    {
        char name[20];
        int index;
        printf("请输入要查询的运动员的姓名:");
        scanf("%s",&name);
        getchar();
        index=Student_SearchByName(name);   //调用搜查name函数,根据其返回值确定位置
        if (index==-1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要查询的运动员信息为:\n");
            Student_DisplaySingle(index);
        }
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void sort()//根据总金牌数排序
{
    int i,j;
    //struct students tmp;
    for (i=0; i<num; i++)
    {
        students[i].All=students[i].wy+students[i].yy+students[i].dy+students[i].zyy;
    }
    for (i=0; i<num; i++)
    {
        for (j=1; j<num-i; j++)
        {
            if (students[j-1].All<students[j].All)
            {
 
                Copy(students,num,j-1);
                Copy(students,j-1,j);
                Copy(students,j,num);
                //tmp=students[j-1];
                //students[j-1]=students[j];
                //students[j]=tmp;      //冒泡排序
            }
        }
    }
    int a;
    printf("%10s%10s%8s%8s%8s%8s%10s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
    printf("-------------------------------------------------------------\n");
    for (a=0; a<num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",students[a].ID,students[a].Name,
               students[a].wy,students[a].yy,students[a].dy,students[a].zyy,students[a].All,students[a].pro);
    }
}
void Save()
{
    FILE*fp = fopen("temp.txt","w+");
    fprintf(fp,"%d\n",num);
    for(int i = 0 ; i< num ; i++)
    {
        fprintf(fp,"%s %s %f %f %f %f %f %f\n",students[i].ID,students[i].Name,students[i].wy,students[i].yy,students[i].dy,students[i].zyy,students[i].All,students[i].pro);
    }
    fclose(fp);
}
void Load()
{
    FILE*fp = fopen("temp.txt","r");
    fscanf(fp,"%d",&num);
    for(int i = 0 ; i< num ; i++)
    {
        fscanf(fp,"%s %s %f %f %f %f %f %f\n",students[i].ID,students[i].Name,&students[i].wy,&students[i].yy,&students[i].dy,&students[i].zyy,&students[i].All,&students[i].pro);
    }
    fclose(fp);
}
 
int main()
{
    Welcome();
 
    return 0;
}

差不多是这样吧
那个省份的输出不了
不用的话可以去掉


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
struct Student    //每个运动员对应一个结构体
{
    char ID[20];//编号
    char Name[10];//姓名
    float wy;//蛙泳金牌数
    float yy;//仰泳金牌数
    float dy;//蝶泳金牌数
    float zyy;//自由泳金牌数
    float All; //总金牌数
    char pro[20];//省份
} students[1000];
int num=0; //计数器
void Welcome(),Password(),Menu(),Load(),Input(),Edit(),deletee(),insert(),display(),search(),sort(),Save();//要用到的函数
void Copy(struct Student *arr,int i,int j)
{
    strcpy(arr[i].ID,arr[j].ID);
    strcpy(arr[i].Name,arr[j].Name);
    arr[i].wy = arr[j].wy;
    arr[i].yy = arr[j].yy;
    arr[i].dy = arr[j].dy;
    arr[i].zyy = arr[j].zyy;
    arr[i].All = arr[j].All;
    strcpy(arr[i].pro,arr[j].pro);
    //arr[i].pro = arr[j].pro;
}
int Student_SearchByName(char name[])//通过姓名来检索运动员
{
    int i;
    for (i=0; i<num; i++)
    {
        if (strcmp(students[i].Name,name)==0)  //通过strcmp函数来对比运动员姓名,找到返回在数组的位置
        {
            return i;
        }
    }
    return -1;    //未找到返回 -1
}
int Student_SearchByIndex(char id[])//通过编号来检索运动员信息
{
    int i;
    for (i=0; i<num; i++)
    {
        if (strcmp(students[i].ID,id)==0)  //通过strcmp函数来对比学生id,找到返回位置
        {
            return i;
        }
    }
    return -1;   //未找到返回 -1
}

void Student_DisplaySingle(int index)//输出表头
{
    printf("%10s%10s%8s%8s%8s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
    printf("-\n");
    printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n",students[index].ID,students[index].Name,
           students[index].wy,students[index].yy,students[index].dy,students[index].zyy,students[index].All,students[index].pro);
}
void Welcome()// 欢迎界面函数
{
    system("color F5"); //设置背景色为亮白色,字体颜色为紫色
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|                   欢迎进入                   |\n");
    printf("\t\t|             游泳运动员成绩管理系统           |\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|----------------------------------------------|\n");
    printf("\t\t|         设计者:才小呆                       |\n");
    printf("\t\t|----------------------------------------------|\n");
    Password();
}
void Password()//输入密码
{
    char mm[20];
    printf("\n\n\n");
    printf("\t\t 请输入登录密码:");
    gets(mm);
    if(strcmp(mm,"00")==0)//判断两个字符串是否相等(不能直接用“==”,只能用字符串比较函数)
        Menu();
    else
    {
        printf("\n");
        printf("\t\t 输入密码有误,请重新输入......\n");
        Password();
    }
}
void Menu() //菜单
{
    int i;
    while(1)
    {
        Load();

        printf("\t|--------------------------------------------------|\n");
        printf("\t|                                                  |\n");
        printf("\t|                 运动员成绩管理                   |\n");
        printf("\t|                                                  |\n");
        printf("\t|     1.录入运动员信息     2.修改运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     3.删除运动员信息     4.插入运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     5.显示运动员信息     6.查询运动员信息        |\n");
        printf("\t|                                                  |\n");
        printf("\t|     7.按总金牌数排序     0.退出系统              |\n");
        printf("\t|                                                  |\n");
        printf("\t|--------------------------------------------------|\n");
        printf("\t请在(0—7)选择要进行的操作!\n"); //菜单的主页面
        scanf("%d",&i);
        system("cls");
        switch(i)
        {
            case 1:
                Input();
                break;
            case 2:
                Edit();
                break;
            case 3:
                deletee();
                break;
            case 4:
                insert();
                break;
            case 5:
                display();
                break;
            case 6:
                search();
                break;
            case 7:
                sort();
                break;
            case 0:
                exit(0);
            default:
                ;
        }
        Save();
    }
    return;
}
void Input()//利用循环录入运动员信息
{
    while(1)
    {
        printf("请输入编号:");
        scanf("%s",students[num].ID);
        getchar();
        printf("请输入姓名:");
        scanf("%s",students[num].Name);
        getchar();
        printf("请输入蛙泳金牌数:");
        scanf("%f",&students[num].wy);
        //getchar();
        printf("请输入仰泳金牌数:");
        scanf("%f",&students[num].yy);
        //getchar();
        printf("请输入蝶泳金牌数:");
        scanf("%f",&students[num].dy);
        //getchar();
        printf("请输入自由泳金牌数:");
        scanf("%f",&students[num].zyy);
        //getchar();
        printf("请输入省份:");
        fflush(stdin);
        gets(students[num].pro);
        //scanf("%s",students[num].pro);
        //getchar();
        //依次输入各项数据
        students[num].All=students[num].wy+students[num].yy+students[num].dy+students[num].zyy;    //输完数据后自动计算总金牌数
        if(Student_SearchByIndex(students[num].ID) == -1)
        {
            num++;  //移向下一个位置
        }
        else
        {
            printf("编号重复,输入数据无效 !!!\n");
        }
        fflush(stdin);
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void Edit()//修改成绩
{
    while(1)
    {
        char id[20];
        int index;
        printf("请输入要修改的运动员的编号:");
        scanf("%s",&id);
        getchar();
        index=Student_SearchByIndex(id);  //调用搜查id函数,根据其返回值确定位置
        if (index==-1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要修改的运动员信息为:\n");
            Student_DisplaySingle(index);
            printf("-- 请输入新值--\n");
            printf("请输入编号:");
            scanf("%s",&students[index].ID);
            getchar();
            printf("请输入姓名:");
            scanf("%s",&students[index].Name);
            getchar();
            printf("请输入蛙泳金牌数:");
            scanf("%f",&students[index].wy);
            getchar();
            printf("请输入仰泳金牌数:");
            scanf("%f",&students[index].yy);
            getchar();
            printf("请输入蝶泳金牌数:");
            scanf("%f",&students[index].dy);
            getchar();
            printf("请输入自由泳金牌数:");
            scanf("%f",&students[index].zyy);
            getchar();
            printf("请输入省份:");
            scanf("%f",&students[index].pro);
            getchar(); //重新录入一套新的数据替代
            students[index].All=students[index].wy+students[index].yy+students[index].dy+students[index].zyy;
        }
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void deletee()//删除运动员信息
{
    int i;
    while(1)
    {
        char id[20];
        int index;
        printf("请输入要删除的运动员的编号:");
        scanf("%s",&id);
        getchar();
        index=Student_SearchByIndex(id);   //调用搜查id函数,根据其返回值确定位置
        if (index==-1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要删除的运动员信息为:\n");
            Student_DisplaySingle(index);
            printf("是否真的要删除?(y/n)");
            if (getchar()=='y')
            {
                for (i=index; i<num-1; i++)
                {
                    Copy(students,i,i+1);
                    //students[i]=students[i+1];    //把后边的对象都向前移动
                }
                num--;
            }
            getchar();
        }
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void insert()//指定位置插入学生信息
{
    int a,b,c;
    printf("请输入你要插入的位置");
    scanf("%d",&a);
    if(a>num)
    {
        printf("输入的位置有误,请重新输入,当前共%d条数据\n",num);
        scanf("%d",&a);
    }

    b=num-1;
    for(; b>=a-1; b--)
    {
        //strcpy(students[b+1].ID,students[b].ID);
        //strcpy(students[b+1].Name,students[b].Name);
        //students[b+1].wy=students[b].wy;
        //students[b+1].yy=students[b].yy;
        //students[b+1].dy=students[b].dy;
        //students[b+1].zyy=students[b].zyy;
        //students[b+1].All=students[b].All;
        //students[b+1].pro=students[b].pro;
        Copy(students,b+1,b); //根据其输入的位置,将其及以后的数据向后移动一个位置

    }
    num++;
    printf("请输入编号:");
    scanf("%s",&students[a-1].ID);
    getchar();
    printf("请输入姓名:");
    scanf("%s",&students[a-1].Name);
    getchar();
    printf("请输入蛙泳金牌数:");
    scanf("%f",&students[a-1].wy);
    getchar();
    printf("请输入仰泳金牌数:");
    scanf("%f",&students[a-1].yy);
    getchar();
    printf("请输入蝶泳金牌数:");
    scanf("%f",&students[a-1].dy);
    getchar();
    printf("请输入自由泳金牌数:");
    scanf("%f",&students[a-1].zyy);
    getchar();
    printf("请输入省份:");
    scanf("%f",&students[a-1].pro);
    getchar();
    //输入新数据
    students[a-1].All=students[a-1].wy+students[a-1].yy+students[a-1].dy+students[a-1].zyy;

}
void display()//显示已录入的运动员信息
{
    int a;
    printf("%10s%10s%10s%10s%10s%10s%10s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
    printf("-------------------------------------------------------------\n");
    for (a=0; a<num; a++)
    {
        printf("%10s%10s%10.2f%10.2f%10.2f%10.2f%10.2f%10s\n",students[a].ID,students[a].Name,
               students[a].wy,students[a].yy,students[a].dy,students[a].zyy,students[a].All,students[a].pro);
    }
}
void search()//查询运动员信息
{
    while(1)
    {
        char name[20];
        int index;
        printf("请输入要查询的运动员的姓名:");
        scanf("%s",name);
        getchar();
        index=Student_SearchByName(name);   //调用搜查name函数,根据其返回值确定位置
        if (index==-1)
        {
            printf("运动员不存在!\n");
        }
        else
        {
            printf("你要查询的运动员信息为:\n");
            Student_DisplaySingle(index);
        }
        printf("是否继续?(y/n)");
        if (getchar()=='n')
        {
            break;
        }
    }
}
void sort()//根据总金牌数排序
{
    int i,j;
    //struct students tmp;
    for (i=0; i<num; i++)
    {
        students[i].All=students[i].wy+students[i].yy+students[i].dy+students[i].zyy;
    }
    for (i=0; i<num; i++)
    {
        for (j=1; j<num-i; j++)
        {
            if (students[j-1].All<students[j].All)
            {

                Copy(students,num,j-1);
                Copy(students,j-1,j);
                Copy(students,j,num);
                //tmp=students[j-1];
                //students[j-1]=students[j];
                //students[j]=tmp;      //冒泡排序
            }
        }
    }
    int a;
    printf("%10s%10s%8s%8s%8s%8s%10s%10s\n","编号","姓名","蛙泳金牌数","仰泳金牌数 ","蝶泳金牌数 ","自由泳金牌数 ","总成绩","省份");
    printf("-------------------------------------------------------------\n");
    for (a=0; a<num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10s\n",students[a].ID,students[a].Name,
               students[a].wy,students[a].yy,students[a].dy,students[a].zyy,students[a].All,students[a].pro);
    }
}
void Save()
{
    FILE*fp = fopen("temp.txt","w+");
    fprintf(fp,"%d\n",num);
    for(int i = 0 ; i< num ; i++)
    {
        fprintf(fp,"%s %s %f %f %f %f %f %f\n",students[i].ID,students[i].Name,students[i].wy,students[i].yy,students[i].dy,students[i].zyy,students[i].All,students[i].pro);
    }
    fclose(fp);
}
void Load()
{
    FILE*fp = fopen("temp.txt","r");
    fscanf(fp,"%d",&num);
    for(int i = 0 ; i< num ; i++)
    {
        fscanf(fp,"%s %s %f %f %f %f %f %f\n",students[i].ID,students[i].Name,&students[i].wy,&students[i].yy,&students[i].dy,&students[i].zyy,&students[i].All,&students[i].pro);
    }
    fclose(fp);
}

int main()
{
    Welcome();
    Sleep(2555);
    //Menu();
    return 0;
}

gets

自己写的连运行入口main方法都没有,还不知道。。。
注释都写的这么详细

写个main函数挨个调用void里面东西就可以运行啦