用C语言写代码:输入n(n<20)个学生的C语言课程成绩(浮点型),找出中位数后输出。
时间: 2024-04-29 20:24:53 浏览: 145
可以的,以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return *(float *) a > *(float *) b ? 1 : -1;
}
int main() {
int n;
float scores[20];
printf("请输入学生数n(n<20): ");
scanf("%d", &n);
if (n > 20 || n <= 0) {
printf("输入错误!\n");
return 0;
}
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%f", &scores[i]);
}
qsort(scores, n, sizeof(float), cmp);
int mid = n / 2;
float median = n % 2 == 0 ? (scores[mid - 1] + scores[mid]) / 2 : scores[mid];
printf("中位数为:%g\n", median);
return 0;
}
```
运行代码可以得到如下输出:
```
请输入学生数n(n<20): 5
请输入第1个学生的成绩:95.5
请输入第2个学生的成绩:87.5
请输入第3个学生的成绩:92
请输入第4个学生的成绩:83.5
请输入第5个学生的成绩:79
中位数为:87.5
```
阅读全文