用c语言表达编写函数,功能是将10个学生成绩从高分到低分排序,并统计优秀与不及格的人数。函数形式为: int fun(int s[],int *x); /*s为学生成绩数组,*x为不及格人数,返回优秀的人数*/
时间: 2024-03-25 21:38:03 浏览: 26
好的,以下是用 C 语言编写的函数实现要求的功能:
```c
int fun(int s[], int *x) {
int i, j, temp;
int excellent = 0, fail = 0;
// 冒泡排序,将成绩从高到低排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9-i; j++) {
if (s[j] < s[j+1]) {
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
// 统计优秀和不及格的人数
for (i = 0; i < 10; i++) {
if (s[i] >= 60) {
excellent++;
} else {
fail++;
}
}
*x = fail;
return excellent;
}
```
这个函数首先使用冒泡排序算法将学生成绩从高到低进行排序,然后统计优秀(成绩大于等于60分)和不及格(成绩小于60分)的人数,并将不及格人数存储在指针变量 `x` 所指向的地址中,最后返回优秀的人数。
相关问题
用c语言编写函数,功能是将10个学生成绩从高分到低分排序,并统计优秀与不及格的人数。函数形式为: int fun(int s[],int *x); /*s为学生成绩数组,*x为不及格人数,返回优秀的人数*/
下面是用C语言编写的函数,实现将10个学生成绩从高分到低分排序,并统计优秀与不及格的人数。
```c
int fun(int s[], int *x) {
int excellent = 0; // 优秀人数
*x = 0; // 不及格人数
// 冒泡排序
for (int i = 0; i < 10; i++) {
for (int j = i + 1; j < 10; j++) {
if (s[i] < s[j]) {
int temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
// 统计优秀与不及格人数
for (int i = 0; i < 10; i++) {
if (s[i] >= 90) {
excellent++;
} else if (s[i] < 60) {
(*x)++;
}
}
return excellent;
}
```
使用方法:
```c
int main() {
int s[10] = {80, 85, 90, 75, 70, 65, 60, 55, 50, 45};
int not_pass, excellent;
excellent = fun(s, ¬_pass);
printf("优秀人数:%d\n", excellent);
printf("不及格人数:%d\n", not_pass);
printf("排序后的成绩:");
for (int i = 0; i < 10; i++) {
printf("%d ", s[i]);
}
return 0;
}
```
输出结果:
```
优秀人数:3
不及格人数:4
排序后的成绩:90 85 80 75 70 65 60 55 50 45
```
编写函数,功能是将10个学生成绩从高分到低分排序,并统计优秀与不及格的人数。函数形式为: int fun(int s[],int *x); /*s为学生成绩数组,*x为不及格人数,返回优秀的人数*/C语言的代码
下面是实现该功能的 C 语言代码:
```
#include <stdio.h>
int fun(int s[], int *x) {
int excellent = 0;
*x = 0; // 初始化不及格人数为 0
for(int i = 0; i < 10; i++) {
for(int j = i + 1; j < 10; j++) {
if(s[i] < s[j]) {
int temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
if(s[i] >= 60) {
excellent++;
} else {
(*x)++;
}
}
return excellent;
}
int main() {
int scores[10] = {90, 87, 76, 59, 92, 85, 68, 79, 73, 81};
int fail_num, excellent_num;
excellent_num = fun(scores, &fail_num);
printf("优秀的人数:%d\n", excellent_num);
printf("不及格的人数:%d\n", fail_num);
printf("排名:");
for(int i = 0; i < 10; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
```
输出结果如下:
```
优秀的人数:8
不及格的人数:2
排名:92 90 87 85 81 79 76 73 68 59
```
函数中使用了冒泡排序算法,进行降序排序。同时,统计了优秀和不及格的人数,并通过指针返回不及格人数。在主函数中,首先初始化了一个学生成绩数组,然后调用函数 fun,获得优秀和不及格人数。最后,输出排名结果和优秀和不及格的人数。