用c语言实现,功能是将10个学生成绩从高分到低分排序,并统计优秀与不及格的人数。函数形式为: int fun(int s[],int *x); /*s为学生成绩数组,*x为不及格人数,返回优秀的人数*/
时间: 2024-03-31 07:35:38 浏览: 53
好的,这是一个经典的排序和统计问题。我来给您提供一下 C 语言的实现:
```c
#include <stdio.h>
int fun(int s[], int *x) {
int excellent = 0; // 优秀人数
*x = 0; // 不及格人数
int n = 10; // 学生人数
for (int i = 0; i < n - 1; i++) { // 冒泡排序
for (int j = 0; j < n - i - 1; j++) {
if (s[j] < s[j + 1]) {
int temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++) { // 统计优秀和不及格人数
if (s[i] >= 90) {
excellent++;
} else if (s[i] < 60) {
(*x)++;
}
}
return excellent;
}
int main() {
int s[10] = {87, 65, 92, 78, 89, 60, 72, 93, 81, 55};
int x = 0; // 不及格人数
int excellent = fun(s, &x);
printf("优秀人数:%d\n", excellent);
printf("不及格人数:%d\n", x);
printf("成绩排序:");
for (int i = 0; i < 10; i++) {
printf("%d ", s[i]);
}
return 0;
}
```
上面的代码中,`fun()` 函数接收一个整型数组 `s[]` 和一个整型指针 `x`,用于返回优秀人数和不及格人数。首先使用冒泡排序将学生成绩从高到低排序,然后遍历数组统计优秀和不及格人数。在 `main()` 函数中,我们定义了一个包含 10 个元素的数组 `s[]`,将其作为参数传递给 `fun()` 函数,同时定义了一个整型变量 `x` 用于接收不及格人数。最后输出优秀人数、不及格人数和排序后的成绩。
阅读全文