C语言写代码(用数组完成):输入n(n<20)个学生的C语言课程成绩(浮点型),找出中位数后输出。 中位数:先将n个数有序排列,如n为奇数,正中间的一个数是这组数的中位数;如n为偶数,正中间两个数的平均数是这组数的中位数。
时间: 2024-05-29 13:08:45 浏览: 64
我可以帮您写一个C语言代码,如下所示:
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return *(float *)a - *(float *)b; // 比较函数,从小到大排序
}
int main() {
int n;
printf("请输入学生人数n:\n");
scanf("%d", &n);
if (n >= 20) {
printf("输入错误,n必须小于20!\n");
return 1;
}
float score[n];
printf("请输入%d个学生的成绩:\n", n);
for (int i = 0; i < n; i++) {
scanf("%f", &score[i]);
}
qsort(score, n, sizeof(float), cmp); //排序
float median;
if (n % 2 == 1) {
median = score[n / 2];
} else {
median = (score[n / 2 - 1] + score[n / 2]) / 2;
}
printf("中位数是:%.2f\n", median);
return 0;
}
希望对您有所帮助。
阅读全文