使用c语言编写程序实现5.编写函数,功能是将10个学生成绩从高分到低分排序,并统计优秀与不及 格的人数。函数形式为: intfun(ints[I,int*x):/*s为学生成绩数组,*x为不及格人数, 返回优秀的人数
时间: 2024-03-14 19:48:20 浏览: 67
好的,我理解了你的问题。以下是实现你所描述的函数的C语言代码:
```
#include <stdio.h>
void sort(int s[], int n, int* x, int* y) {
int i, j, temp;
*x = 0; // 不及格人数初始化为0
*y = 0; // 优秀人数初始化为0
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (s[i] < s[j]) { // 如果前一个成绩比后一个成绩低,就交换它们的位置
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
if (s[i] < 60) { // 如果当前成绩低于60,不及格人数+1
(*x)++;
}
else if (s[i] >= 90) { // 如果当前成绩高于等于90,优秀人数+1
(*y)++;
}
}
}
int main() {
int s[10] = {80, 75, 90, 60, 85, 70, 95, 65, 50, 55};
int i, x, y;
sort(s, 10, &x, &y); // 调用sort函数排序并统计人数
printf("排序结果:\n");
for (i = 0; i < 10; i++) {
printf("%d ", s[i]);
}
printf("\n不及格人数:%d,优秀人数:%d\n", x, y);
return 0;
}
```
在这个程序中,我们定义了一个`sort`函数,它接收一个整型数组`s`、数组的长度`n`、指向不及格人数的指针`x`和指向优秀人数的指针`y`。函数使用了冒泡排序法将数组`s`中的元素按从高到低排序,并在排序的过程中统计不及格和优秀人数。最后,我们在`main`函数中调用`sort`函数,并输出排序结果和人数统计结果。
注意,本程序仅供参考,如果需要在实际应用中使用,还需要进行更严谨的测试和优化。
阅读全文