c语言怎么写:有5个同学数据信息包括学号、姓名、课程成绩,打印出成绩最高同学的信息
时间: 2024-11-24 21:40:49 浏览: 18
在C语言中,你可以使用结构体来存储每个学生的数据,然后遍历数组或链表找到成绩最高的学生并打印其信息。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
struct Student {
int student_id;
char name[50];
float grade;
};
// 比较两个学生的成绩并返回最高者
int compare_grades(const void* a, const void* b) {
const struct Student* s1 = (const struct Student*)a;
const struct Student* s2 = (const struct Student*)b;
return s2->grade - s1->grade; // 如果s2的grade更高则返回正数,反之负数
}
int main() {
struct Student students[] = { // 假设有5个同学的数据
{1, "张三", 85},
{2, "李四", 92},
{3, "王五", 78},
{4, "赵六", 96},
{5, "陈七", 88}
};
int num_students = sizeof(students) / sizeof(students[0]);
struct Student max_student;
// 使用qsort函数对成绩进行排序
qsort(students, num_students, sizeof(struct Student), compare_grades);
// 找到最高分的学生,并打印其信息
max_student = students[0]; // 因为已排好序,第一个就是最高分
printf("学号:%d,姓名:%s,成绩:%f\n", max_student.student_id, max_student.name, max_student.grade);
return 0;
}
```
这个程序首先使用`qsort`函数对学生的数组按成绩降序排列,然后取出第一个元素即为成绩最高学生的信息。
阅读全文