c语言结构数组题学生管理系统

学生的记录由学号、姓名、专业组成,根据班级人数,将学生记录存放在结构体数组中。由于部分同学转专业,学生记录发生了变化。请编程实现根据学号查询学生记录并修改专业,分别输出转专业和未转专业的学生记录。要求:班级人数、学生记录由键盘输入(结构数组解决,不要用指针)

定义学生结构体,然后用结构体数组存储数据,转专业就是修改结构体中的专业字段。
参考如下:

#include <stdio.h>
#include <stdlib.h>
#define MAXNMB 100

//定义学生信息
typedef struct _studentinfo 
{
    int id;//学号
    char name[20]; //姓名 
    char major[20];//专业
    int ischange;  //是否转过专业,0表示没有转过,1表示转过
}Student;

//录入学生信息
void input(Student stu[],int* nmb)
{
    int i;
    system("cls");
    printf("请输入学生人数:");
    scanf("%d",nmb);//注意这里是nmb,因为nmb本身就是指针
    for (i=0;i<*nmb;i++)
    {
        printf("请输入学生%d的学号:",i+1);
        scanf("%d",&stu[i].id);
        printf("请输入学生%d的姓名:",i+1);
        scanf("%s",stu[i].name);
        printf("请输入学生%d的专业:",i+1);
        scanf("%s",stu[i].major);
        stu[i].ischange = 0;
    }
    printf("录入成功!\n");
    system("pause");
}

//转专业
void change(Student stu[],int nmb)
{
    int i;
    int id;
    system("cls");
    printf("请输入需要转专业的学生的学号:");
    scanf("%d",&id);
    for (i=0;i<nmb;i++)
    {
        if(stu[i].id == id)
        {
            printf("请输入新专业:");
            scanf("%s",stu[i].major);
            printf("修改成功\n");
            stu[i].ischange = 1;
            break;
        }
    }
    if(i==nmb)
        printf("未找到该学号的学生!\n");
    system("pause");
}
//输出转专业和未转专业学生的信息
void show(Student stu[],int nmb)
{
    int i;
    system("cls");
    //输出未转过专业的学生信息
    printf("未转过专业的学生信息\n");
    for (i=0;i<nmb;i++)
    {
        if(!stu[i].ischange)
            printf("%-10d  %-20s  %-20s\n",stu[i].id,stu[i].name,stu[i].major);
    }
    printf("转过专业的学生信息\n");
    for (i=0;i<nmb;i++)
    {
        if(stu[i].ischange)
            printf("%-10d  %-20s  %-20s\n",stu[i].id,stu[i].name,stu[i].major);
    }
    system("pause");
}
int main()
{
    Student stu[MAXNMB];
    int nmb=0;
    int op;
    while(1)
    {
        system("cls");
        printf("-------------------------\n");
        printf("  欢迎使用学生管理系统\n");
        printf("    1.录入学生信息\n");
        printf("    2.转专业\n");
        printf("    3.显示学生信息\n");
        printf("    4.退出系统\n");
        printf("-------------------------\n");
        printf("请选择:");
        scanf("%d",&op);
        switch(op)
        {
        case 1:
            input(stu,&nmb);
            break;
        case 2:
            change(stu,nmb);
            break;
        case 3:
            show(stu,nmb);
            break;
        case 4:
            return 0;
        }
    }
    return 0;
}

这不是数据库的内容,用c太麻烦

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