c语言与数组、指针有关的问题

c语言设计一个小程序,可简单实现10名学生3门课程成绩的录入、输出和查询,需要有提示菜单

望采纳:
可以看题目意思,确认下面步骤:
1、学生信息结构体,有学号、3门成绩

struct student
{
    int nId;             // 学号
    float fLanguage;     // 语文
    float fMath;         // 数学
    float fEnglish;      // 英语
};

因为要十名学生,所以可以定义结构体数组

student st_stu[10];

int total;标识数组下标
2、成绩的录入函数

            student st;

            printf("\n 输入您的学号: ");
            scanf("%d", &st.nId);

            printf("\n 输入您的语文成绩: ");
            scanf("%f", &st.fLanguage);

            printf("\n 输入您的数学成绩: ");
            scanf("%f", &st.fMath);

            printf("\n 输入您的英语成绩: ");
            scanf("%f", &st.fEnglish);

            st_stu[total++] = st;

3、成绩的输出

            for (int i = 0; i < total; ++i)
            {
                printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
            }

4、成绩查询

            int nId = 0;
            printf("\n 输入您要查询的学号: ");
            scanf("%d", &nId);
            int nflag = 0;
            for (int i = 0; i < total; ++i)
            {
                if (st_stu[i].nId == nId)
                {
                    nflag = 1;
                    printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
                    break;
                }
            }
            if (nflag == 0)
            {
                printf("没有找到该学号的成绩,请输入有选项!\n");
            }

5、整体代码

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

struct student
{
    int nId;             // 学号
    float fLanguage;     // 语文
    float fMath;         // 数学
    float fEnglish;      // 英语
};

int main()
{
    student st_stu[10];

    int ch = 0;                    // 输入命令
    int y = 0;                     // 输入结束符

    int total = 0;        // 数组下标

    do
    {
        printf("************************************\n");
        printf("\n\t 输入指令 ");
        printf("\n 1. 录入学生成绩");
        printf("\n 2. 输出学生成绩");
        printf("\n 3. 按学号查询学生成绩");
        printf("\n 4. end 表示命令输入结束 \n");
        printf("************************************");
        printf("\n输入您的选择: ");
        scanf("%d", &ch);

        switch (ch)
        {
        case 1:
        {
            student st;
            memset(&st, 0, sizeof(st));

            printf("\n 输入您的学号: ");
            scanf("%d", &st.nId);

            printf("\n 输入您的语文成绩: ");
            scanf("%f", &st.fLanguage);

            printf("\n 输入您的数学成绩: ");
            scanf("%f", &st.fMath);

            printf("\n 输入您的英语成绩: ");
            scanf("%f", &st.fEnglish);

            st_stu[total++] = st;
            break;
        }
        case 2:
        {
            for (int i = 0; i < total; ++i)
            {
                printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
            }
            break;
        }
        case 3:
        {
            int nId = 0;
            printf("\n 输入您要查询的学号: ");
            scanf("%d", &nId);
            int nflag = 0;
            for (int i = 0; i < total; ++i)
            {
                if (st_stu[i].nId == nId)
                {
                    nflag = 1;
                    printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
                    break;
                }
            }
            if (nflag == 0)
            {
                printf("没有找到该学号的成绩,请输入有选项!\n");
            }
            break;
        }
        case 4:
        {
            y = 1;
            break;
        }
        default:
            printf("\n请输入有选项!\n");
            break;

        }
    } while (y != 1);
    return 0;
}

6、打印输出

************************************

         输入指令
 1. 录入学生成绩
 2. 输出学生成绩
 3. 按学号查询学生成绩
 4. end 表示命令输入结束
************************************
输入您的选择: 1

 输入您的学号: 1

 输入您的语文成绩: 80.1

 输入您的数学成绩: 90.3

 输入您的英语成绩: 7.01
************************************

         输入指令
 1. 录入学生成绩
 2. 输出学生成绩
 3. 按学号查询学生成绩
 4. end 表示命令输入结束
************************************
输入您的选择: 2

学号:1,语文成绩:80.099998,数学成绩:90.300003,英语成绩:7.010000
************************************

         输入指令
 1. 录入学生成绩
 2. 输出学生成绩
 3. 按学号查询学生成绩
 4. end 表示命令输入结束
************************************
输入您的选择: 3

 输入您要查询的学号: 1

学号:1,语文成绩:80.099998,数学成绩:90.300003,英语成绩:7.010000
************************************

         输入指令
 1. 录入学生成绩
 2. 输出学生成绩
 3. 按学号查询学生成绩
 4. end 表示命令输入结束
************************************
输入您的选择: 4