编写函数,功能是将10个学生成绩从高分到低分排序,并统计优秀与不及格的人数。函数形式为: int fun(int s[],int *x); /*s为学生成绩数组,*x为不及格人数,返回优秀的人数*/
时间: 2024-03-25 07:38:30 浏览: 20
好的,以下是您要求的程序:
```c
#include <stdio.h>
#define N 10
int fun(int s[], int *x);
int main() {
int s[N], excellent, fail;
printf("请输入10个学生成绩:\n");
for (int i = 0; i < N; i++) {
scanf("%d", &s[i]);
}
excellent = fun(s, &fail);
printf("排序后的成绩为:\n");
for (int i = 0; i < N; i++) {
printf("%d ", s[i]);
}
printf("\n优秀的人数为:%d,不及格的人数为:%d\n", excellent, fail);
return 0;
}
int fun(int s[], int *x) {
int excellent = 0;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
if (s[i] < s[j]) {
int tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
}
if (s[i] >= 60) {
excellent++;
}
}
*x = N - excellent;
return excellent;
}
```
程序使用了一个名为 `fun` 的函数来对学生成绩进行排序,并统计优秀和不及格的人数。在主函数中,我们先输入10个学生成绩,然后调用 `fun` 函数来进行排序和统计,并输出结果。
在 `fun` 函数中,我们使用了冒泡排序的算法来对成绩进行排序,同时统计优秀和不及格的人数。排序后,优秀的人数就是数组中大于等于60分的元素个数,不及格的人数就是数组中小于60分的元素个数。
希望这个程序能够帮到您!