鱼C论坛

 找回密码
 立即注册
查看: 1757|回复: 2

[已解决]C语言函数定义时使用&出现的一系列问题

[复制链接]
发表于 2021-6-30 00:28:46 | 显示全部楼层 |阅读模式

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

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

x
百度看到有人说C语言中没有&没有作为引用 这一说法,把&删除后虽然程序没有报错但是并不能正常的运行
以c++的格式打开后就都可以正常运行,想要在C语言的环境下运行,但怎么改都搞不明白
想请教一下大家
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define N 40 //线性表存储空间的初始分配量
#define increase 10 //线性表存储空间的分配量增量
int choice;  //定义全局变量
typedef struct {
        char name[20];
        int num;            //学号和房号都为整型
        int room;
} stu;
stu stud;
typedef struct {
        int length; //当前长度
        stu *elem;  //存储空间基址
        int listsize;  //当前分配的存储容量
} linklist;

//线性表初始化
void Init(linklist &L) {
        L.length = 0;
        L.elem = (stu *)malloc(N * sizeof(stu));
        L.listsize = N;
}

//操作菜单
void Menu() {
        printf( "**************************************\n" );
        printf( "***       欢迎进入宿舍管理系统     ***\n" );
        printf( "**************************************\n" );
        printf( "*        1.  新建宿舍名单            *\n" );
        printf( "*        2.  排序宿舍信息            *\n" );
        printf( "*        3.  查询宿舍信息            *\n" );
        printf( "*        4.  插入宿舍信息            *\n" );
        printf( "*        5.  删除宿舍信息            *\n" );
        printf( "*        0.  退出系统                *\n" );
        printf( "**************************************\n" );
        printf("请输入菜单(0-5):");
        scanf("%d", &choice);
        if (choice<0 || choice>5) {
                system("cls");
                printf("输入数字不对,请重新!\n");
                printf("\n");
                Menu();
        }

}

//打印学生信息
void Display(linklist &L) {
        int i;
        printf("姓名       学号    房号\n");
        for (i = 0; i<L.length; i++)
                printf("%-10s %-2d %5d\n", L.elem[i].name, L.elem[i].num, L.elem[i].room);
}

//返回主界面
void Ret() {   
        char c;
        fflush(stdin);
        printf("\n");
        printf("请按任意键进入主界面:");
        scanf("%c", &c);
        system("cls");
}

//创建学生信息表
void Create(linklist &L) {
        int i = 2;
        char ch;
        if (L.length >= L.listsize) { //判断学生的人数是否超过初值,如果超过,则重新分配
                stu *newbase;
                newbase = (stu*)realloc(L.elem, (N + increase) * sizeof(stu));
                L.elem = newbase;
                L.listsize += increase;
        }
        printf("********开始创建学生信息**********\n");
        printf("\n");
        printf("请输入第1个学生的信息\n");
        printf("请输入姓名:");
        fflush(stdin);      // 清空输入缓冲区,得到正确的输入数据
        gets(stud.name);    //输入一行字符串(姓名)
        printf("请输入学号:");
        scanf("%d", &stud.num);
        printf("请输入房号:");
        scanf("%d", &stud.room);
        ch = getchar();
        strcpy(L.elem[L.length].name, stud.name);
        L.elem[L.length].num = stud.num;
        L.elem[L.length].room = stud.room;
        L.length++;
        printf("\n");
        printf("是否继续输入?<y/n>:");
        scanf("%c", &ch);
        printf("\n");
        while (ch == 'y') {
                printf("请输入第%d个学生的信息\n", i);
                printf("请输入姓名:");
                fflush(stdin);      // 清空输入缓冲区,得到正确的输入数据
                gets(stud.name);    //输入一行字符串(姓名)
                printf("请输入学号:");
                scanf("%d", &stud.num);
                printf("请输入房号:");
                scanf("%d", &stud.room);
                strcpy(L.elem[L.length].name, stud.name);
                L.elem[L.length].num = stud.num;
                L.elem[L.length].room = stud.room;
                i++;
                L.length=i-1;
                ch = getchar();
                printf("\n");
                printf("是否继续输入?<y/n>:");
                scanf("%c", &ch);
                printf("\n");
        }
        if (ch == 'n')
                system("cls");
}

//按姓名排序(采用冒泡排序)
void sort1(linklist &L) {
        int i, j;
        stu temp;
        for (i = 0; i<L.length - 1; i++)
                for (j = 0; j<L.length-1-i; j++)
                        if (strcmp(L.elem[j].name, L.elem[j+1].name)>0) {
                                temp = L.elem[j];
                                L.elem[j] = L.elem[j+1];
                                L.elem[j+1] = temp;
                        }
}

//按学号排序(采用折半插入排序)
void sort2(linklist &L) {
        int i, j, mid, low, high;
        stu temp;
        for (i = 1; i < L.length; i++) {
                if(L.elem[i].num<L.elem[i-1].num) {
                        temp = L.elem[i];
                        low = 0;
                        high = i-1;
                        while (low <= high) {
                                mid = (low + high) / 2;
                                if (temp.num < L.elem[mid].num)
                                        high = mid - 1;
                                else
                                        low = mid + 1;
                        }
                        for (j = i - 1; j >= high+1; j--)
                                L.elem[j+1]=L.elem[j];
                        L.elem[high+1]=temp;
                }
        }
}

//按房号排序(采用简单选择排序)
void sort3(linklist &L) {
        int i,j,k;
        stu temp;
        for(i=0; i<L.length-1; i++) {
                k=i;
                for(j=i+1; j<L.length; j++)
                        if(L.elem[j].room<L.elem[k].room)
                                k=j;
                if(k!=i){
                        temp = L.elem[i];
                        L.elem[i] = L.elem[k];
                        L.elem[k] = temp;
                }
        }
}
//排序函数
void Sort(linklist &L) {
        int c;
        printf("请输入排序的方式(1:按名字排序,2:按学号排序,3:按房号排序):");
        scanf("%d", &c);
        switch (c) {
                case 1:
                        sort1(L);
                        if (L.length == 0) {
                                printf("已无学生记录!\n");
                                Ret();
                                Menu();
                        } else {
                                printf("按姓名排序:\n");
                                Display(L);
                                Ret();  //调用返回主界面
                                Menu();
                        }
                        break;
                case 2:
                        sort2(L);
                        if (L.length == 0) {
                                printf("已无学生记录!\n");
                                Ret();
                                Menu();
                        } else {
                                printf("按学号排序:\n");
                                Display(L);
                                Ret();  //调用返回主界面
                                Menu();
                        }
                        break;
                case 3:
                        sort3(L);
                        if (L.length == 0) {
                                printf("已无学生记录!\n");
                                Ret();
                                Menu();
                        } else {
                                printf("按房号排序:\n");
                                Display(L);
                                Ret();  //调用返回主界面
                                Menu();
                        }
                        break;
                default:
                        break;
        }
}

//选择是否继续查找
int Select() {
        char ch;
        scanf("%c", &ch);
        printf("是否继续查找?<y/n>:");
        fflush(stdin);
        scanf("%c", &ch);
        if (ch == 'y') {
                system("cls");
                return 1;
        } else
                return 0;
}

//按姓名从小到大查找(采用二分查找)
void search1(linklist &L) {
        if (L.length == 0) {
                printf("已无学生记录!\n");
                Ret();
                Menu();
        } else {
                int low = 0, high = L.length, mid, flag = 0;
                printf("\n");
                printf("按姓名查找-->请输入要查找的姓名:");
                char a[15], ch;
                scanf("%s", a);
                while (low <= high) {
                        mid = (low + high) / 2;
                        if (strcmp(a, L.elem[mid].name) == 0) {
                                flag = 1;
                                break;
                        } else if (strcmp(a, L.elem[mid].name)>0)
                                low = mid + 1;
                        else
                                high = mid - 1;
                }
                if (flag == 1) {
                        printf("查找成功-->该学生信息为:\n");
                        printf("姓名       学号    房号\n");
                        printf("%-10s %-2d %-5d\n", L.elem[mid].name, L.elem[mid].num, L.elem[mid].room);
                        if (Select())
                                search1(L);
                        else {
                                system("cls");
                                Menu();
                        }
                } else {
                        printf("该学生不存在!");
                        if (Select())    search1(L);
                        else {
                                system("cls");
                                Menu();
                        }
                }
        }
}

//按学号从小到大查找(采用二分查找)
void search2(linklist &L) {
        if (L.length == 0) {
                printf("\n");
                printf("已无学生记录!\n");
                Ret();
                Menu();
        } else {
                int low = 0, high = L.length, mid, flag = 0;
                int n;
                char ch;
                printf("\n");
                printf("按学号查找-->请输入要查找的学号:");
                scanf("%d", &n);
                while (low <= high) {
                        mid = (low + high) / 2;
                        if (n == L.elem[mid].num) {
                                flag = 1;
                                break;
                        } else if (n>L.elem[mid].num)
                                low = mid + 1;
                        else
                                high = mid - 1;
                }
                if (flag == 1) {
                        printf("查找成功----->该学生信息为:\n");
                        printf("姓名       学号    房号\n");
                        printf("%-1s0 %-2d %-5d\n", L.elem[mid].name, L.elem[mid].num, L.elem[mid].room);
                        if (Select())
                                search2(L);
                        else {
                                system("cls");
                                Menu();
                        }
                } else {
                        printf("该学生不存在!");
                        if (Select())
                                search2(L);
                        else {
                                system("cls");
                                Menu();
                        }
                }
        }
}

//按房号从小到大查找(采用二分查找)
void search3(linklist &L) {
        if (L.length == 0) { //此函数功能为:返回主界面
                printf("\n");
                printf("已无学生记录!\n");
                Ret();
                Menu();
        } else {
                int low = 0, high = L.length, mid, flag = 0;//flag作为标志符,为1则表示查找成功,否则没有所要查找的学生
                int m;
                char ch;
                printf("\n");
                printf("按房号查找-->请输入要查找的房号:");
                scanf("%d", &m);
                while (low <= high) {
                        mid = (low + high) / 2;
                        if (m == L.elem[mid].room) {
                                flag = 1;
                                break;
                        } else if (m>L.elem[mid].room)
                                low = mid + 1;
                        else
                                high = mid - 1;
                }
                if (flag == 1) {
                        printf("查找成功-->该学生信息为:\n");
                        printf("姓名       学号    房号\n");
                        printf("%-10s %-2d %-5d\n", L.elem[mid].name, L.elem[mid].num, L.elem[mid].room);
                        if (Select())    //调用判断函数1
                                search3(L);
                        else {
                                system("cls");
                                Menu();
                        }
                } else {
                        printf("该学生不存在!");
                        if (Select())  //调用判断函数2
                                search3(L);
                        else {
                                system("cls");
                                Menu();
                        }
                }
        }
}

//查找函数
void Search(linklist &L) {
        int c;
        printf("请输入查找的方式(1:按名字查找,2:按学号查找,3:按房号查找):");
        scanf("%d", &c);
        switch (c) {
                case 1:
                        sort1(L);
                        search1(L);
                        break;//先进行二分查找排序
                case 2:
                        sort2(L);
                        search2(L);
                        break;
                case 3:
                        sort3(L);
                        search3(L);
                        break;
                default:
                        break;
        }
}

//按学号从小到大插入该学生
void Insert(linklist &L) {
        int i, j, k;
        char ch;
        printf("\n");
        printf("插入的学生信息为:\n");
        printf("姓名:");
        fflush(stdin);// 清空输入缓冲区,得到正确的输入数据
        gets(stud.name);
        printf("学号:");
        scanf("%d", &stud.num);
        printf("房号:");
        scanf("%d", &stud.room);
        if (L.length == 0) {
                strcpy(L.elem[L.length].name, stud.name);
                L.elem[L.length].num = stud.num;
                L.elem[L.length].room = stud.room;
        }
        for (i = 0; i<L.length; i++) {
                if (stud.num<L.elem[i].num) {
                        k = i;
                        for (j = L.length; j>k; j--)
                                L.elem[j] = L.elem[j - 1];
                        strcpy(L.elem[k].name, stud.name);
                        L.elem[k].num = stud.num;
                        L.elem[k].room = stud.room;
                        break;
                } else {
                        strcpy(L.elem[L.length].name, stud.name);
                        L.elem[L.length].num = stud.num;
                        L.elem[L.length].room = stud.room;
                }
        }
        L.length++;
        fflush(stdin);
        printf("\n");
        printf("是否继续插入?<y/n>:");
        scanf("%c", &ch);
        if (ch == 'y') Insert(L);
        else system("cls");
}

//按学号删除该学生
void Delete(linklist &L) {
        int i, j, k = -1;
        char ch;
        printf("\n");
        printf("\n");
        printf("请输入要删除学生的学号:");
        scanf("%d", &stud.num);
        for (i = 0; i<L.length; i++) {
                if (stud.num == L.elem[i].num) {
                        printf("该学生的信息为:\n");
                        printf("姓名:%s \n学号:%d \n房号:%d\n", L.elem[i].name, L.elem[i].num, L.elem[i].room);
                        k = i;
                        for (j = k; j<L.length - 1; j++)
                                L.elem[j] = L.elem[j + 1];
                        printf("已成功删除\n");

                        break;
                }
        }
        if (i >= L.length) printf("该学生不存在\n");
        if (k >= 0)L.length--;
        fflush(stdin);
        printf("\n");
        printf("是否继续删除操作?<y/n>:");
        scanf("%c", &ch);
        system("cls");
        if (ch == 'y') Delete(L);
        else system("cls");
}

//主函数
int main() {  
        linklist L;    //定义线性表 L
        Init(L);
        Menu();        //调用主菜单函数
        while (choice != 0) {
                system("cls");
                switch (choice) {
                        case 1:
                                Create(L);    //调用线性表创建函数
                                Menu();
                                break;
                        case 2:
                                Sort(L);
                                break;//调用排序函数
                        case 3:
                                Search(L);
                                break;//调用查找函数进行(二分)查找
                        case 4:
                                sort2(L);      //调用学号排序函数
                                Insert(L);        //按学号序列插入
                                system("cls");
                                printf("插入后的学生信息:\n");
                                Display(L);
                                Ret();
                                Menu();
                                break;
                        case 5:
                                Delete(L);    //调用删除函数
                                if (L.length == 0) {
                                        printf("\n");
                                        printf("学生记录已被删除完!\n");
                                        Ret();
                                        Menu();
                                } else {
                                        printf("显示删除后的学生信息:\n");
                                        Display(L);
                                        Ret();
                                        Menu();
                                }
                                break;
                }
        }
}
最佳答案
2021-6-30 10:40:58
C语言用指针
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. //#include<windows.h>

  5. #define N 40 //线性表存储空间的初始分配量
  6. #define increase 10 //线性表存储空间的分配量增量

  7. int choice; //定义全局变量

  8. typedef struct {
  9.     char name[20];
  10.     int num;            //学号和房号都为整型
  11.     int room;
  12. } stu;

  13. stu stud;

  14. typedef struct {
  15.     int length; //当前长度
  16.     stu *elem;  //存储空间基址
  17.     int listsize;  //当前分配的存储容量
  18. } linklist;

  19. //线性表初始化
  20. void Init(linklist *L) {
  21.     L->length = 0;
  22.     L->elem = (stu *)malloc(N * sizeof(stu));
  23.     L->listsize = N;
  24. }

  25. //操作菜单
  26. void Menu() {
  27.     printf( "**************************************\n" );
  28.     printf( "***       欢迎进入宿舍管理系统     ***\n" );
  29.     printf( "**************************************\n" );
  30.     printf( "*        1.  新建宿舍名单            *\n" );
  31.     printf( "*        2.  排序宿舍信息            *\n" );
  32.     printf( "*        3.  查询宿舍信息            *\n" );
  33.     printf( "*        4.  插入宿舍信息            *\n" );
  34.     printf( "*        5.  删除宿舍信息            *\n" );
  35.     printf( "*        0.  退出系统                *\n" );
  36.     printf( "**************************************\n" );
  37.     printf("请输入菜单(0-5):");
  38.     scanf("%d", &choice);
  39.     if (choice<0 || choice>5) {
  40.         system("cls");
  41.         printf("输入数字不对,请重新!\n");
  42.         printf("\n");
  43.         Menu();
  44.     }
  45. }

  46. //打印学生信息
  47. void Display(linklist *L) {
  48.     int i;
  49.     printf("姓名       学号    房号\n");
  50.     for (i = 0; i<L->length; i++)
  51.         printf("%-10s %-2d %5d\n", L->elem[i].name, L->elem[i].num, L->elem[i].room);
  52. }

  53. //返回主界面
  54. void Ret() {   
  55.     char c;
  56.     fflush(stdin);
  57.     printf("\n");
  58.     printf("请按任意键进入主界面:");
  59.     scanf("%c", &c);
  60.     system("cls");
  61. }

  62. //创建学生信息表
  63. void Create(linklist *L) {
  64.     int i = 2;
  65.     char ch;
  66.     if (L->length >= L->listsize) { //判断学生的人数是否超过初值,如果超过,则重新分配
  67.         stu *newbase;
  68.         newbase = (stu*)realloc(L->elem, (N + increase) * sizeof(stu));
  69.         L->elem = newbase;
  70.         L->listsize += increase;
  71.     }
  72.     printf("********开始创建学生信息**********\n");
  73.     printf("\n");
  74.     printf("请输入第1个学生的信息\n");
  75.     printf("请输入姓名:");
  76.     fflush(stdin);      // 清空输入缓冲区,得到正确的输入数据
  77.     //gets(stud.name);    //输入一行字符串(姓名)
  78.     fgets(stud.name, 20, stdin);
  79.     printf("请输入学号:");
  80.     scanf("%d", &stud.num);
  81.     printf("请输入房号:");
  82.     scanf("%d", &stud.room);
  83.     ch = getchar();
  84.     strcpy(L->elem[L->length].name, stud.name);
  85.     L->elem[L->length].num = stud.num;
  86.     L->elem[L->length].room = stud.room;
  87.     L->length++;
  88.     printf("\n");
  89.     printf("是否继续输入?<y/n>:");
  90.     scanf("%c", &ch);
  91.     printf("\n");
  92.     while (ch == 'y') {
  93.         printf("请输入第%d个学生的信息\n", i);
  94.         printf("请输入姓名:");
  95.         fflush(stdin);      // 清空输入缓冲区,得到正确的输入数据
  96.         //gets(stud.name);    //输入一行字符串(姓名)
  97.         fgets(stud.name, 20, stdin);
  98.         printf("请输入学号:");
  99.         scanf("%d", &stud.num);
  100.         printf("请输入房号:");
  101.         scanf("%d", &stud.room);
  102.         strcpy(L->elem[L->length].name, stud.name);
  103.         L->elem[L->length].num = stud.num;
  104.         L->elem[L->length].room = stud.room;
  105.         i++;
  106.         L->length=i-1;
  107.         ch = getchar();
  108.         printf("\n");
  109.         printf("是否继续输入?<y/n>:");
  110.         scanf("%c", &ch);
  111.         printf("\n");
  112.     }
  113.     if (ch == 'n')
  114.         system("cls");
  115. }

  116. //按姓名排序(采用冒泡排序)
  117. void sort1(linklist *L) {
  118.     int i, j;
  119.     stu temp;
  120.     for (i = 0; i<L->length - 1; i++)
  121.         for (j = 0; j<L->length-1-i; j++)
  122.             if (strcmp(L->elem[j].name, L->elem[j+1].name)>0) {
  123.                 temp = L->elem[j];
  124.                 L->elem[j] = L->elem[j+1];
  125.                 L->elem[j+1] = temp;
  126.             }
  127. }

  128. //按学号排序(采用折半插入排序)
  129. void sort2(linklist *L) {
  130.     int i, j, mid, low, high;
  131.     stu temp;
  132.     for (i = 1; i < L->length; i++) {
  133.         if(L->elem[i].num<L->elem[i-1].num) {
  134.             temp = L->elem[i];
  135.             low = 0;
  136.             high = i-1;
  137.             while (low <= high) {
  138.                 mid = (low + high) / 2;
  139.                 if (temp.num < L->elem[mid].num)
  140.                     high = mid - 1;
  141.                 else
  142.                     low = mid + 1;
  143.             }
  144.             for (j = i - 1; j >= high+1; j--)
  145.                 L->elem[j+1]=L->elem[j];
  146.             L->elem[high+1]=temp;
  147.         }
  148.     }
  149. }

  150. //按房号排序(采用简单选择排序)
  151. void sort3(linklist *L) {
  152.     int i,j,k;
  153.     stu temp;
  154.     for(i=0; i<L->length-1; i++) {
  155.         k=i;
  156.         for(j=i+1; j<L->length; j++)
  157.             if(L->elem[j].room<L->elem[k].room)
  158.                 k=j;
  159.         if(k!=i){
  160.             temp = L->elem[i];
  161.             L->elem[i] = L->elem[k];
  162.             L->elem[k] = temp;
  163.         }
  164.     }
  165. }
  166. //排序函数
  167. void Sort(linklist *L) {
  168.     int c;
  169.     printf("请输入排序的方式(1:按名字排序,2:按学号排序,3:按房号排序):");
  170.     scanf("%d", &c);
  171.     switch (c) {
  172.         case 1:
  173.             sort1(L);
  174.             if (L->length == 0) {
  175.                 printf("已无学生记录!\n");
  176.                 Ret();
  177.                 Menu();
  178.             } else {
  179.                 printf("按姓名排序:\n");
  180.                 Display(L);
  181.                 Ret();  //调用返回主界面
  182.                 Menu();
  183.             }
  184.             break;
  185.         case 2:
  186.             sort2(L);
  187.             if (L->length == 0) {
  188.                 printf("已无学生记录!\n");
  189.                 Ret();
  190.                 Menu();
  191.             } else {
  192.                 printf("按学号排序:\n");
  193.                 Display(L);
  194.                 Ret();  //调用返回主界面
  195.                 Menu();
  196.             }
  197.             break;
  198.         case 3:
  199.             sort3(L);
  200.             if (L->length == 0) {
  201.                 printf("已无学生记录!\n");
  202.                 Ret();
  203.                 Menu();
  204.             } else {
  205.                 printf("按房号排序:\n");
  206.                 Display(L);
  207.                 Ret();  //调用返回主界面
  208.                 Menu();
  209.             }
  210.             break;
  211.         default:
  212.             break;
  213.     }
  214. }

  215. //选择是否继续查找
  216. int Select() {
  217.     char ch;
  218.     scanf("%c", &ch);
  219.     printf("是否继续查找?<y/n>:");
  220.     fflush(stdin);
  221.     scanf("%c", &ch);
  222.     if (ch == 'y') {
  223.         system("cls");
  224.         return 1;
  225.     } else
  226.         return 0;
  227. }

  228. //按姓名从小到大查找(采用二分查找)
  229. void search1(linklist *L) {
  230.     if (L->length == 0) {
  231.         printf("已无学生记录!\n");
  232.         Ret();
  233.         Menu();
  234.     } else {
  235.         int low = 0, high = L->length, mid, flag = 0;
  236.         printf("\n");
  237.         printf("按姓名查找-->请输入要查找的姓名:");
  238.         char a[15];//, ch;
  239.         scanf("%s", a);
  240.         while (low <= high) {
  241.             mid = (low + high) / 2;
  242.             if (strcmp(a, L->elem[mid].name) == 0) {
  243.                 flag = 1;
  244.                 break;
  245.             } else if (strcmp(a, L->elem[mid].name)>0)
  246.                 low = mid + 1;
  247.             else
  248.                 high = mid - 1;
  249.         }
  250.         if (flag == 1) {
  251.             printf("查找成功-->该学生信息为:\n");
  252.             printf("姓名       学号    房号\n");
  253.             printf("%-10s %-2d %-5d\n", L->elem[mid].name, L->elem[mid].num, L->elem[mid].room);
  254.             if (Select())
  255.                 search1(L);
  256.             else {
  257.                 system("cls");
  258.                 Menu();
  259.             }
  260.         } else {
  261.             printf("该学生不存在!");
  262.             if (Select())    search1(L);
  263.             else {
  264.                 system("cls");
  265.                 Menu();
  266.             }
  267.         }
  268.     }
  269. }

  270. //按学号从小到大查找(采用二分查找)
  271. void search2(linklist *L) {
  272.     if (L->length == 0) {
  273.         printf("\n");
  274.         printf("已无学生记录!\n");
  275.         Ret();
  276.         Menu();
  277.     } else {
  278.         int low = 0, high = L->length, mid, flag = 0;
  279.         int n;
  280.         //char ch;
  281.         printf("\n");
  282.         printf("按学号查找-->请输入要查找的学号:");
  283.         scanf("%d", &n);
  284.         while (low <= high) {
  285.             mid = (low + high) / 2;
  286.             if (n == L->elem[mid].num) {
  287.                 flag = 1;
  288.                 break;
  289.             } else if (n>L->elem[mid].num)
  290.                 low = mid + 1;
  291.             else
  292.                 high = mid - 1;
  293.         }
  294.         if (flag == 1) {
  295.             printf("查找成功----->该学生信息为:\n");
  296.             printf("姓名       学号    房号\n");
  297.             printf("%-1s0 %-2d %-5d\n", L->elem[mid].name, L->elem[mid].num, L->elem[mid].room);
  298.             if (Select())
  299.                 search2(L);
  300.             else {
  301.                 system("cls");
  302.                 Menu();
  303.             }
  304.         } else {
  305.             printf("该学生不存在!");
  306.             if (Select())
  307.                 search2(L);
  308.             else {
  309.                 system("cls");
  310.                 Menu();
  311.             }
  312.         }
  313.     }
  314. }

  315. //按房号从小到大查找(采用二分查找)
  316. void search3(linklist *L) {
  317.     if (L->length == 0) { //此函数功能为:返回主界面
  318.         printf("\n");
  319.         printf("已无学生记录!\n");
  320.         Ret();
  321.         Menu();
  322.     } else {
  323.         int low = 0, high = L->length, mid, flag = 0;//flag作为标志符,为1则表示查找成功,否则没有所要查找的学生
  324.         int m;
  325.         //char ch;
  326.         printf("\n");
  327.         printf("按房号查找-->请输入要查找的房号:");
  328.         scanf("%d", &m);
  329.         while (low <= high) {
  330.             mid = (low + high) / 2;
  331.             if (m == L->elem[mid].room) {
  332.                 flag = 1;
  333.                 break;
  334.             } else if (m>L->elem[mid].room)
  335.                 low = mid + 1;
  336.             else
  337.                 high = mid - 1;
  338.         }
  339.         if (flag == 1) {
  340.             printf("查找成功-->该学生信息为:\n");
  341.             printf("姓名       学号    房号\n");
  342.             printf("%-10s %-2d %-5d\n", L->elem[mid].name, L->elem[mid].num, L->elem[mid].room);
  343.             if (Select())    //调用判断函数1
  344.                 search3(L);
  345.             else {
  346.                 system("cls");
  347.                 Menu();
  348.             }
  349.         } else {
  350.             printf("该学生不存在!");
  351.             if (Select())  //调用判断函数2
  352.                 search3(L);
  353.             else {
  354.                 system("cls");
  355.                 Menu();
  356.             }
  357.         }
  358.     }
  359. }

  360. //查找函数
  361. void Search(linklist *L) {
  362.     int c;
  363.     printf("请输入查找的方式(1:按名字查找,2:按学号查找,3:按房号查找):");
  364.     scanf("%d", &c);
  365.     switch (c) {
  366.         case 1:
  367.             sort1(L);
  368.             search1(L);
  369.             break;//先进行二分查找排序
  370.         case 2:
  371.             sort2(L);
  372.             search2(L);
  373.             break;
  374.         case 3:
  375.             sort3(L);
  376.             search3(L);
  377.             break;
  378.         default:
  379.             break;
  380.     }
  381. }

  382. //按学号从小到大插入该学生
  383. void Insert(linklist *L) {
  384.     int i, j, k;
  385.     char ch;
  386.     printf("\n");
  387.     printf("插入的学生信息为:\n");
  388.     printf("姓名:");
  389.     fflush(stdin);// 清空输入缓冲区,得到正确的输入数据
  390.     //gets(stud.name);
  391.     fgets(stud.name, 20, stdin);
  392.     printf("学号:");
  393.     scanf("%d", &stud.num);
  394.     printf("房号:");
  395.     scanf("%d", &stud.room);
  396.     if (L->length == 0) {
  397.         strcpy(L->elem[L->length].name, stud.name);
  398.         L->elem[L->length].num = stud.num;
  399.         L->elem[L->length].room = stud.room;
  400.     }
  401.     for (i = 0; i<L->length; i++) {
  402.         if (stud.num<L->elem[i].num) {
  403.             k = i;
  404.             for (j = L->length; j>k; j--)
  405.                 L->elem[j] = L->elem[j - 1];
  406.             strcpy(L->elem[k].name, stud.name);
  407.             L->elem[k].num = stud.num;
  408.             L->elem[k].room = stud.room;
  409.             break;
  410.         } else {
  411.             strcpy(L->elem[L->length].name, stud.name);
  412.             L->elem[L->length].num = stud.num;
  413.             L->elem[L->length].room = stud.room;
  414.         }
  415.     }
  416.     L->length++;
  417.     fflush(stdin);
  418.     printf("\n");
  419.     printf("是否继续插入?<y/n>:");
  420.     scanf("%c", &ch);
  421.     if (ch == 'y') Insert(L);
  422.     else system("cls");
  423. }

  424. //按学号删除该学生
  425. void Delete(linklist *L) {
  426.     int i, j, k = -1;
  427.     char ch;
  428.     printf("\n");
  429.     printf("\n");
  430.     printf("请输入要删除学生的学号:");
  431.     scanf("%d", &stud.num);
  432.     for (i = 0; i<L->length; i++) {
  433.         if (stud.num == L->elem[i].num) {
  434.             printf("该学生的信息为:\n");
  435.             printf("姓名:%s \n学号:%d \n房号:%d\n", L->elem[i].name, L->elem[i].num, L->elem[i].room);
  436.             k = i;
  437.             for (j = k; j<L->length - 1; j++)
  438.                 L->elem[j] = L->elem[j + 1];
  439.             printf("已成功删除\n");

  440.             break;
  441.         }
  442.     }
  443.     if (i >= L->length) printf("该学生不存在\n");
  444.     if (k >= 0)L->length--;
  445.     fflush(stdin);
  446.     printf("\n");
  447.     printf("是否继续删除操作?<y/n>:");
  448.     scanf("%c", &ch);
  449.     system("cls");
  450.     if (ch == 'y') Delete(L);
  451.     else system("cls");
  452. }

  453. //主函数
  454. int main() {  
  455.     linklist L;    //定义线性表 L
  456.     Init(&L);
  457.     Menu();        //调用主菜单函数
  458.     while (choice != 0) {
  459.         system("cls");
  460.         switch (choice) {
  461.             case 1:
  462.                 Create(&L);    //调用线性表创建函数
  463.                 Menu();
  464.                 break;
  465.             case 2:
  466.                 Sort(&L);
  467.                 break;//调用排序函数
  468.             case 3:
  469.                 Search(&L);
  470.                 break;//调用查找函数进行(二分)查找
  471.             case 4:
  472.                 sort2(&L);      //调用学号排序函数
  473.                 Insert(&L);        //按学号序列插入
  474.                 system("cls");
  475.                 printf("插入后的学生信息:\n");
  476.                 Display(&L);
  477.                 Ret();
  478.                 Menu();
  479.                 break;
  480.             case 5:
  481.                 Delete(&L);    //调用删除函数
  482.                 if (L.length == 0) {
  483.                     printf("\n");
  484.                     printf("学生记录已被删除完!\n");
  485.                     Ret();
  486.                     Menu();
  487.                 } else {
  488.                     printf("显示删除后的学生信息:\n");
  489.                     Display(&L);
  490.                     Ret();
  491.                     Menu();
  492.                 }
  493.                 break;
  494.         }
  495.     }
  496. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-6-30 10:40:58 | 显示全部楼层    本楼为最佳答案   
C语言用指针
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. //#include<windows.h>

  5. #define N 40 //线性表存储空间的初始分配量
  6. #define increase 10 //线性表存储空间的分配量增量

  7. int choice; //定义全局变量

  8. typedef struct {
  9.     char name[20];
  10.     int num;            //学号和房号都为整型
  11.     int room;
  12. } stu;

  13. stu stud;

  14. typedef struct {
  15.     int length; //当前长度
  16.     stu *elem;  //存储空间基址
  17.     int listsize;  //当前分配的存储容量
  18. } linklist;

  19. //线性表初始化
  20. void Init(linklist *L) {
  21.     L->length = 0;
  22.     L->elem = (stu *)malloc(N * sizeof(stu));
  23.     L->listsize = N;
  24. }

  25. //操作菜单
  26. void Menu() {
  27.     printf( "**************************************\n" );
  28.     printf( "***       欢迎进入宿舍管理系统     ***\n" );
  29.     printf( "**************************************\n" );
  30.     printf( "*        1.  新建宿舍名单            *\n" );
  31.     printf( "*        2.  排序宿舍信息            *\n" );
  32.     printf( "*        3.  查询宿舍信息            *\n" );
  33.     printf( "*        4.  插入宿舍信息            *\n" );
  34.     printf( "*        5.  删除宿舍信息            *\n" );
  35.     printf( "*        0.  退出系统                *\n" );
  36.     printf( "**************************************\n" );
  37.     printf("请输入菜单(0-5):");
  38.     scanf("%d", &choice);
  39.     if (choice<0 || choice>5) {
  40.         system("cls");
  41.         printf("输入数字不对,请重新!\n");
  42.         printf("\n");
  43.         Menu();
  44.     }
  45. }

  46. //打印学生信息
  47. void Display(linklist *L) {
  48.     int i;
  49.     printf("姓名       学号    房号\n");
  50.     for (i = 0; i<L->length; i++)
  51.         printf("%-10s %-2d %5d\n", L->elem[i].name, L->elem[i].num, L->elem[i].room);
  52. }

  53. //返回主界面
  54. void Ret() {   
  55.     char c;
  56.     fflush(stdin);
  57.     printf("\n");
  58.     printf("请按任意键进入主界面:");
  59.     scanf("%c", &c);
  60.     system("cls");
  61. }

  62. //创建学生信息表
  63. void Create(linklist *L) {
  64.     int i = 2;
  65.     char ch;
  66.     if (L->length >= L->listsize) { //判断学生的人数是否超过初值,如果超过,则重新分配
  67.         stu *newbase;
  68.         newbase = (stu*)realloc(L->elem, (N + increase) * sizeof(stu));
  69.         L->elem = newbase;
  70.         L->listsize += increase;
  71.     }
  72.     printf("********开始创建学生信息**********\n");
  73.     printf("\n");
  74.     printf("请输入第1个学生的信息\n");
  75.     printf("请输入姓名:");
  76.     fflush(stdin);      // 清空输入缓冲区,得到正确的输入数据
  77.     //gets(stud.name);    //输入一行字符串(姓名)
  78.     fgets(stud.name, 20, stdin);
  79.     printf("请输入学号:");
  80.     scanf("%d", &stud.num);
  81.     printf("请输入房号:");
  82.     scanf("%d", &stud.room);
  83.     ch = getchar();
  84.     strcpy(L->elem[L->length].name, stud.name);
  85.     L->elem[L->length].num = stud.num;
  86.     L->elem[L->length].room = stud.room;
  87.     L->length++;
  88.     printf("\n");
  89.     printf("是否继续输入?<y/n>:");
  90.     scanf("%c", &ch);
  91.     printf("\n");
  92.     while (ch == 'y') {
  93.         printf("请输入第%d个学生的信息\n", i);
  94.         printf("请输入姓名:");
  95.         fflush(stdin);      // 清空输入缓冲区,得到正确的输入数据
  96.         //gets(stud.name);    //输入一行字符串(姓名)
  97.         fgets(stud.name, 20, stdin);
  98.         printf("请输入学号:");
  99.         scanf("%d", &stud.num);
  100.         printf("请输入房号:");
  101.         scanf("%d", &stud.room);
  102.         strcpy(L->elem[L->length].name, stud.name);
  103.         L->elem[L->length].num = stud.num;
  104.         L->elem[L->length].room = stud.room;
  105.         i++;
  106.         L->length=i-1;
  107.         ch = getchar();
  108.         printf("\n");
  109.         printf("是否继续输入?<y/n>:");
  110.         scanf("%c", &ch);
  111.         printf("\n");
  112.     }
  113.     if (ch == 'n')
  114.         system("cls");
  115. }

  116. //按姓名排序(采用冒泡排序)
  117. void sort1(linklist *L) {
  118.     int i, j;
  119.     stu temp;
  120.     for (i = 0; i<L->length - 1; i++)
  121.         for (j = 0; j<L->length-1-i; j++)
  122.             if (strcmp(L->elem[j].name, L->elem[j+1].name)>0) {
  123.                 temp = L->elem[j];
  124.                 L->elem[j] = L->elem[j+1];
  125.                 L->elem[j+1] = temp;
  126.             }
  127. }

  128. //按学号排序(采用折半插入排序)
  129. void sort2(linklist *L) {
  130.     int i, j, mid, low, high;
  131.     stu temp;
  132.     for (i = 1; i < L->length; i++) {
  133.         if(L->elem[i].num<L->elem[i-1].num) {
  134.             temp = L->elem[i];
  135.             low = 0;
  136.             high = i-1;
  137.             while (low <= high) {
  138.                 mid = (low + high) / 2;
  139.                 if (temp.num < L->elem[mid].num)
  140.                     high = mid - 1;
  141.                 else
  142.                     low = mid + 1;
  143.             }
  144.             for (j = i - 1; j >= high+1; j--)
  145.                 L->elem[j+1]=L->elem[j];
  146.             L->elem[high+1]=temp;
  147.         }
  148.     }
  149. }

  150. //按房号排序(采用简单选择排序)
  151. void sort3(linklist *L) {
  152.     int i,j,k;
  153.     stu temp;
  154.     for(i=0; i<L->length-1; i++) {
  155.         k=i;
  156.         for(j=i+1; j<L->length; j++)
  157.             if(L->elem[j].room<L->elem[k].room)
  158.                 k=j;
  159.         if(k!=i){
  160.             temp = L->elem[i];
  161.             L->elem[i] = L->elem[k];
  162.             L->elem[k] = temp;
  163.         }
  164.     }
  165. }
  166. //排序函数
  167. void Sort(linklist *L) {
  168.     int c;
  169.     printf("请输入排序的方式(1:按名字排序,2:按学号排序,3:按房号排序):");
  170.     scanf("%d", &c);
  171.     switch (c) {
  172.         case 1:
  173.             sort1(L);
  174.             if (L->length == 0) {
  175.                 printf("已无学生记录!\n");
  176.                 Ret();
  177.                 Menu();
  178.             } else {
  179.                 printf("按姓名排序:\n");
  180.                 Display(L);
  181.                 Ret();  //调用返回主界面
  182.                 Menu();
  183.             }
  184.             break;
  185.         case 2:
  186.             sort2(L);
  187.             if (L->length == 0) {
  188.                 printf("已无学生记录!\n");
  189.                 Ret();
  190.                 Menu();
  191.             } else {
  192.                 printf("按学号排序:\n");
  193.                 Display(L);
  194.                 Ret();  //调用返回主界面
  195.                 Menu();
  196.             }
  197.             break;
  198.         case 3:
  199.             sort3(L);
  200.             if (L->length == 0) {
  201.                 printf("已无学生记录!\n");
  202.                 Ret();
  203.                 Menu();
  204.             } else {
  205.                 printf("按房号排序:\n");
  206.                 Display(L);
  207.                 Ret();  //调用返回主界面
  208.                 Menu();
  209.             }
  210.             break;
  211.         default:
  212.             break;
  213.     }
  214. }

  215. //选择是否继续查找
  216. int Select() {
  217.     char ch;
  218.     scanf("%c", &ch);
  219.     printf("是否继续查找?<y/n>:");
  220.     fflush(stdin);
  221.     scanf("%c", &ch);
  222.     if (ch == 'y') {
  223.         system("cls");
  224.         return 1;
  225.     } else
  226.         return 0;
  227. }

  228. //按姓名从小到大查找(采用二分查找)
  229. void search1(linklist *L) {
  230.     if (L->length == 0) {
  231.         printf("已无学生记录!\n");
  232.         Ret();
  233.         Menu();
  234.     } else {
  235.         int low = 0, high = L->length, mid, flag = 0;
  236.         printf("\n");
  237.         printf("按姓名查找-->请输入要查找的姓名:");
  238.         char a[15];//, ch;
  239.         scanf("%s", a);
  240.         while (low <= high) {
  241.             mid = (low + high) / 2;
  242.             if (strcmp(a, L->elem[mid].name) == 0) {
  243.                 flag = 1;
  244.                 break;
  245.             } else if (strcmp(a, L->elem[mid].name)>0)
  246.                 low = mid + 1;
  247.             else
  248.                 high = mid - 1;
  249.         }
  250.         if (flag == 1) {
  251.             printf("查找成功-->该学生信息为:\n");
  252.             printf("姓名       学号    房号\n");
  253.             printf("%-10s %-2d %-5d\n", L->elem[mid].name, L->elem[mid].num, L->elem[mid].room);
  254.             if (Select())
  255.                 search1(L);
  256.             else {
  257.                 system("cls");
  258.                 Menu();
  259.             }
  260.         } else {
  261.             printf("该学生不存在!");
  262.             if (Select())    search1(L);
  263.             else {
  264.                 system("cls");
  265.                 Menu();
  266.             }
  267.         }
  268.     }
  269. }

  270. //按学号从小到大查找(采用二分查找)
  271. void search2(linklist *L) {
  272.     if (L->length == 0) {
  273.         printf("\n");
  274.         printf("已无学生记录!\n");
  275.         Ret();
  276.         Menu();
  277.     } else {
  278.         int low = 0, high = L->length, mid, flag = 0;
  279.         int n;
  280.         //char ch;
  281.         printf("\n");
  282.         printf("按学号查找-->请输入要查找的学号:");
  283.         scanf("%d", &n);
  284.         while (low <= high) {
  285.             mid = (low + high) / 2;
  286.             if (n == L->elem[mid].num) {
  287.                 flag = 1;
  288.                 break;
  289.             } else if (n>L->elem[mid].num)
  290.                 low = mid + 1;
  291.             else
  292.                 high = mid - 1;
  293.         }
  294.         if (flag == 1) {
  295.             printf("查找成功----->该学生信息为:\n");
  296.             printf("姓名       学号    房号\n");
  297.             printf("%-1s0 %-2d %-5d\n", L->elem[mid].name, L->elem[mid].num, L->elem[mid].room);
  298.             if (Select())
  299.                 search2(L);
  300.             else {
  301.                 system("cls");
  302.                 Menu();
  303.             }
  304.         } else {
  305.             printf("该学生不存在!");
  306.             if (Select())
  307.                 search2(L);
  308.             else {
  309.                 system("cls");
  310.                 Menu();
  311.             }
  312.         }
  313.     }
  314. }

  315. //按房号从小到大查找(采用二分查找)
  316. void search3(linklist *L) {
  317.     if (L->length == 0) { //此函数功能为:返回主界面
  318.         printf("\n");
  319.         printf("已无学生记录!\n");
  320.         Ret();
  321.         Menu();
  322.     } else {
  323.         int low = 0, high = L->length, mid, flag = 0;//flag作为标志符,为1则表示查找成功,否则没有所要查找的学生
  324.         int m;
  325.         //char ch;
  326.         printf("\n");
  327.         printf("按房号查找-->请输入要查找的房号:");
  328.         scanf("%d", &m);
  329.         while (low <= high) {
  330.             mid = (low + high) / 2;
  331.             if (m == L->elem[mid].room) {
  332.                 flag = 1;
  333.                 break;
  334.             } else if (m>L->elem[mid].room)
  335.                 low = mid + 1;
  336.             else
  337.                 high = mid - 1;
  338.         }
  339.         if (flag == 1) {
  340.             printf("查找成功-->该学生信息为:\n");
  341.             printf("姓名       学号    房号\n");
  342.             printf("%-10s %-2d %-5d\n", L->elem[mid].name, L->elem[mid].num, L->elem[mid].room);
  343.             if (Select())    //调用判断函数1
  344.                 search3(L);
  345.             else {
  346.                 system("cls");
  347.                 Menu();
  348.             }
  349.         } else {
  350.             printf("该学生不存在!");
  351.             if (Select())  //调用判断函数2
  352.                 search3(L);
  353.             else {
  354.                 system("cls");
  355.                 Menu();
  356.             }
  357.         }
  358.     }
  359. }

  360. //查找函数
  361. void Search(linklist *L) {
  362.     int c;
  363.     printf("请输入查找的方式(1:按名字查找,2:按学号查找,3:按房号查找):");
  364.     scanf("%d", &c);
  365.     switch (c) {
  366.         case 1:
  367.             sort1(L);
  368.             search1(L);
  369.             break;//先进行二分查找排序
  370.         case 2:
  371.             sort2(L);
  372.             search2(L);
  373.             break;
  374.         case 3:
  375.             sort3(L);
  376.             search3(L);
  377.             break;
  378.         default:
  379.             break;
  380.     }
  381. }

  382. //按学号从小到大插入该学生
  383. void Insert(linklist *L) {
  384.     int i, j, k;
  385.     char ch;
  386.     printf("\n");
  387.     printf("插入的学生信息为:\n");
  388.     printf("姓名:");
  389.     fflush(stdin);// 清空输入缓冲区,得到正确的输入数据
  390.     //gets(stud.name);
  391.     fgets(stud.name, 20, stdin);
  392.     printf("学号:");
  393.     scanf("%d", &stud.num);
  394.     printf("房号:");
  395.     scanf("%d", &stud.room);
  396.     if (L->length == 0) {
  397.         strcpy(L->elem[L->length].name, stud.name);
  398.         L->elem[L->length].num = stud.num;
  399.         L->elem[L->length].room = stud.room;
  400.     }
  401.     for (i = 0; i<L->length; i++) {
  402.         if (stud.num<L->elem[i].num) {
  403.             k = i;
  404.             for (j = L->length; j>k; j--)
  405.                 L->elem[j] = L->elem[j - 1];
  406.             strcpy(L->elem[k].name, stud.name);
  407.             L->elem[k].num = stud.num;
  408.             L->elem[k].room = stud.room;
  409.             break;
  410.         } else {
  411.             strcpy(L->elem[L->length].name, stud.name);
  412.             L->elem[L->length].num = stud.num;
  413.             L->elem[L->length].room = stud.room;
  414.         }
  415.     }
  416.     L->length++;
  417.     fflush(stdin);
  418.     printf("\n");
  419.     printf("是否继续插入?<y/n>:");
  420.     scanf("%c", &ch);
  421.     if (ch == 'y') Insert(L);
  422.     else system("cls");
  423. }

  424. //按学号删除该学生
  425. void Delete(linklist *L) {
  426.     int i, j, k = -1;
  427.     char ch;
  428.     printf("\n");
  429.     printf("\n");
  430.     printf("请输入要删除学生的学号:");
  431.     scanf("%d", &stud.num);
  432.     for (i = 0; i<L->length; i++) {
  433.         if (stud.num == L->elem[i].num) {
  434.             printf("该学生的信息为:\n");
  435.             printf("姓名:%s \n学号:%d \n房号:%d\n", L->elem[i].name, L->elem[i].num, L->elem[i].room);
  436.             k = i;
  437.             for (j = k; j<L->length - 1; j++)
  438.                 L->elem[j] = L->elem[j + 1];
  439.             printf("已成功删除\n");

  440.             break;
  441.         }
  442.     }
  443.     if (i >= L->length) printf("该学生不存在\n");
  444.     if (k >= 0)L->length--;
  445.     fflush(stdin);
  446.     printf("\n");
  447.     printf("是否继续删除操作?<y/n>:");
  448.     scanf("%c", &ch);
  449.     system("cls");
  450.     if (ch == 'y') Delete(L);
  451.     else system("cls");
  452. }

  453. //主函数
  454. int main() {  
  455.     linklist L;    //定义线性表 L
  456.     Init(&L);
  457.     Menu();        //调用主菜单函数
  458.     while (choice != 0) {
  459.         system("cls");
  460.         switch (choice) {
  461.             case 1:
  462.                 Create(&L);    //调用线性表创建函数
  463.                 Menu();
  464.                 break;
  465.             case 2:
  466.                 Sort(&L);
  467.                 break;//调用排序函数
  468.             case 3:
  469.                 Search(&L);
  470.                 break;//调用查找函数进行(二分)查找
  471.             case 4:
  472.                 sort2(&L);      //调用学号排序函数
  473.                 Insert(&L);        //按学号序列插入
  474.                 system("cls");
  475.                 printf("插入后的学生信息:\n");
  476.                 Display(&L);
  477.                 Ret();
  478.                 Menu();
  479.                 break;
  480.             case 5:
  481.                 Delete(&L);    //调用删除函数
  482.                 if (L.length == 0) {
  483.                     printf("\n");
  484.                     printf("学生记录已被删除完!\n");
  485.                     Ret();
  486.                     Menu();
  487.                 } else {
  488.                     printf("显示删除后的学生信息:\n");
  489.                     Display(&L);
  490.                     Ret();
  491.                     Menu();
  492.                 }
  493.                 break;
  494.         }
  495.     }
  496. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-30 12:39:33 | 显示全部楼层

谢谢你,是你说的这样呢,我自己再研究研究,太感谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-27 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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