用c语言建立把N名学生的数据放入结构组数s中,写一个fun函数,把分数最高的学术上数据放在b所指的数组中,函数返回值时最高分的学生人数
时间: 2024-03-12 17:47:13 浏览: 51
C语言上机题
好的,这是一个关于C语言的编程问题。以下是一个示例代码:
```c
#include <stdio.h>
#define N 5
struct student {
char name[20];
int score;
};
int fun(struct student s[], int n, struct student b[]) {
int max_score = s[0].score;
int count = 0;
for (int i = 1; i < n; i++) {
if (s[i].score > max_score) {
max_score = s[i].score;
count = 0;
}
if (s[i].score == max_score) {
b[count] = s[i];
count++;
}
}
return count;
}
int main() {
struct student s[N] = {
{"Alice", 90},
{"Bob", 85},
{"Charlie", 95},
{"David", 95},
{"Eva", 80}
};
struct student b[N];
int count = fun(s, N, b);
printf("The highest score is %d, and %d student(s) achieved it:\n", b[0].score, count);
for (int i = 0; i < count; i++) {
printf("%s\n", b[i].name);
}
return 0;
}
```
在上述代码中,我们定义了一个结构体 `student`,其中包含学生姓名和分数两个字段。然后我们定义了一个 `fun` 函数,接受一个结构体数组 `s` 和其长度 `n`,还有一个结构体数组 `b` 用来存放分数最高的学生。函数首先遍历整个 `s` 数组,找到分数最高的学生,并记录下最高分数 `max_score` 和该分数的学生人数 `count`。然后再遍历一次 `s` 数组,将分数等于 `max_score` 的学生存放到 `b` 数组中。最后返回 `count`。
在 `main` 函数中,我们定义了一个长度为 `N` 的结构体数组 `s`,并将其中的数据初始化。然后定义了另一个长度为 `N` 的结构体数组 `b`,并调用 `fun` 函数来找到分数最高的学生。最后输出分数最高的学生的姓名。
阅读全文