c语言做一个系统,可以查找最高最低学生分数
时间: 2024-01-12 08:02:33 浏览: 27
实现这个系统,可以考虑以下步骤:
1. 定义一个学生结构体,包括姓名、学号、成绩等信息。
2. 定义一个存储学生信息的数组,可以使用动态内存分配或者静态数组。
3. 编写输入函数,可以从文件或者键盘输入学生信息,并将其存储到数组中。
4. 编写查找最高最低分数的函数,可以遍历数组,找到最高分和最低分的学生信息。
5. 编写输出函数,可以将最高最低分数的学生信息输出到文件或者屏幕上。
下面是一个简单的代码示例,供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
typedef struct {
char name[20];
int id;
float score;
} student_t;
void input_students(student_t* students, int n)
{
for (int i = 0; i < n; i++) {
printf("Please input the name, id and score of student %d:\n", i+1);
scanf("%s %d %f", students[i].name, &students[i].id, &students[i].score);
}
}
void find_highest_lowest_score(student_t* students, int n, student_t* highest, student_t* lowest)
{
*highest = students[0];
*lowest = students[0];
for (int i = 1; i < n; i++) {
if (students[i].score > highest->score) {
*highest = students[i];
}
if (students[i].score < lowest->score) {
*lowest = students[i];
}
}
}
void output_student(student_t* student)
{
printf("%s %d %f\n", student->name, student->id, student->score);
}
int main()
{
student_t students[MAX_STUDENT_NUM];
student_t highest, lowest;
int n;
printf("Please input the number of students:\n");
scanf("%d", &n);
input_students(students, n);
find_highest_lowest_score(students, n, &highest, &lowest);
printf("The student with highest score:\n");
output_student(&highest);
printf("The student with lowest score:\n");
output_student(&lowest);
return 0;
}
```
需要注意的是,这个代码示例中没有对学生信息进行排序,如果希望按照成绩进行排序,可以使用排序算法对数组进行排序。