c语言实现学生信息管理系统

这个程序一直很多错误,我不知道哪里出了问题,说是声明不能在主函数前,而且这个结构数组一直说s没有定义类型


#include<stdio.h>
struct std{
    int num;
    char name[20];
    double chinese;
};
void Searchid(int n,struct std s[]);
void pscore(int n,struct std s[]);
int main(){
    struct std s[50];
    int i = 0;
    int choice;
    int n,j;
    int num_students = 0; // 记录学生数量
 
    printf("**************************************\n");
    printf("***********    欢迎进入    ***********\n");
    printf("*******某某小学学生信息管理系统*******\n");
    printf("|------------------------------------|\n");
    printf("|          1.录入学生信息            |\n");
    printf("|          2.显示学生信息            |\n");
    printf("|          3.查询学生信息            |\n");
    printf("|          4.显示成绩信息            |\n");
    printf("|          5.退出信息系统            |\n");
    printf("**************************************\n");
 
    do {
        printf("请输入您的选择:");
        scanf("%d", &choice);
 
        switch (choice) {
            case 1://录入学生信息 
                printf("请输入学生的总人数(不能超过2000人):");
                scanf("%d", &n);
 
                for (i = 0; i < n; i++) {
                    printf("请输入第%d个学生的信息:", i + 1);
                    scanf("%d%s%lf", &s[i].num, s[i].name, &s[i].chinese);
                }
 
                num_students = n; // 更新学生数量
                printf("学生信息已成功添加!\n");
                break;
 
            case 2://显示学生信息 
                if (num_students == 0) {
                    printf("没有学生信息可以显示。\n");
                    break;
                }
                 printf("请输入您想查询多少人:\n");
                 scanf("%d",&j);
                printf("学生信息列表:\n");
                for (i = 0; i < j; i++) {
                    printf("学号:%d,姓名:%s,成绩:%.2f\n", s[i].num, s[i].name, s[i].chinese);
                }
                break;
 
            case 3:
                // 查询学生信息
                printf("请输入您想查找的学生的学号:\n");
                scanf("%d",&n);
                Searchid(n,s);
                break;
 
            case 4:
                // 显示成绩信息
                printf("以下是成绩信息:\n");
                pscore(n,s); 
                break;
 
            case 5:
                printf("感谢使用学生信息管理系统!\n");
                break;
 
            default:
                printf("无效的选择,请重新输入。\n");
                break;
        }
 
    } while (choice != 5);
 
    return 0;
}
void Searchid(int n,struct std s[])
{
    int term = 0;
    int i;
    scanf("%lld", &term);
    for (i = 0; i < n; i++)
    {
        if (term == s[i].num)
        {
            printf("num:%d\n", s[i].num);
            printf("name:%s\n", s[i].name);
            printf("chinese:%lf\n", s[i].chinese);

            term = -1;
        }
    }
    if (term != -1)
    {
        printf("Not found!\n");
    }
    
}
void pscore(int n,struct std s[])
{    int i;
    for(i=0;i<n;i++){
        printf("chinese score:%lf\n",s[i].chinese);
    }
    printf("显示结束"); 
}

不谈运行,你的程序在我这里测试可以编译啊

img

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^