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主函数中读取输入查询并打印相关信息
解答如下
#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