C语言问题,选修某课程的学生有5人,学生的信息包括学号、姓名和成绩,按成绩高低对学生排序,输出排序后的学生信息。从键盘输入一学生姓名,查出其成绩和成绩等级。(用指向指针的指针处理学生的姓名、学号)

typedef struct
{
int number;
char name[10];
int score;
} STUDENT_DATABASE;
STUDENT_DATABASE student_database[5]={.}建立5个学生4种内容的数据库,
STUDENT_DATABASE SortStudent(STUDENT_DATABASE *student_database,char search_name)
{
STUDENT_DATABASE searched_answer;
//学号排序
//student_database进行修改
//search_name就是搜索的名字,指定到相关数据库然后存入searched_answer
return searched_answer;
}
大致思路知道,但细节怎么处理啊,求一下

1定义结构体数据
2填充五个结构体数组的数据
3编写排序函数完成结构体排序
4主函数中读取输入查询并打印相关信息

解答如下

img

#include<stdio.h>
#include<string.h>
typedef struct
{
    int number;
    char name[10];
    int score;
} STUDENT_DATABASE;
STUDENT_DATABASE student_database[5]=
{
    123,"a",56,
    124,"skjsjs",51,
    125,"owoq\0",85,
    126,"owpw",66,
    127,"oqhw",68
};
//建立5个学生4种内容的数据库,

STUDENT_DATABASE search(STUDENT_DATABASE *student_database,char *search_name)
{
    STUDENT_DATABASE searched_answer;
    for(int j=0; j<5; j++)
    {
        if(strcmp(search_name,student_database[j].name)==0)
        {
            printf("查找成功\n");
            //printf("%d %s %d\n",student_database[j].number,student_database[j].name,student_database[j].score);
            searched_answer=student_database[j];
            return searched_answer;

        }
    }
    printf("查找失败\n");
    return ;
}
void SortStudent(STUDENT_DATABASE *student_database,int n)
{
    for(int i=0; i<n-1; i++)
    {
        for(int j=0; j<n-1-i; j++)
        {
            if(student_database[j].score<student_database[j+1].score)
            {
                STUDENT_DATABASE tem=student_database[j];
                student_database[j]=student_database[j+1];
                student_database[j+1]=tem;
            }

        }

    }
}
void prin(STUDENT_DATABASE *student_database)
{
    for(int j=0; j<5; j++)
    {
        printf("%d %s %d\n",student_database[j].number,student_database[j].name,student_database[j].score);
    }

}
//学号排序
//student_database进行修改
//search_name就是搜索的名字,指定到相关数据库然后存入searched_answer
// return searched_answer;

int main()
{
    char t[10]="owoq";
    prin(student_database);
    SortStudent(student_database,5);
    printf("排序后:\n");
    prin(student_database);
    gets(t);
    STUDENT_DATABASE a=search(student_database,t);
    printf("学号:%d 姓名:%s 成绩%d\n",a.number,a.name,a.score);
    return 1;
}

感觉很像,通讯录,可以看看我的博客通讯录,或者别人的也行

C语言应用实例教程-结构体操作-按学生成绩排序
https://wenku.baidu.com/view/d76502ee588102d276a20029bd64783e09127db0.html