怎样输出一组数据的中位数。一组数种有多个数据。输出这组数中的中位数
1条回答 默认 最新
尘世镜花恋 2021-08-16 15:43关注输入格式
第一行:n —— 数列数字的个数(1 <=n<=1000)。
第二行:有n个正整数,每两个数中间用空格隔开(每一个正整数都小于10000)。#include <stdio.h> #include <stdlib.h> //递增 的快排算法 int compInc(const void *a, const void *b) { return *(int *)a - *(int *)b; } int main() { float k; //注意输出格式 int i,j,n,t; int a[1001]; int len ; while(scanf("%d ",&len)!=EOF){ //要注意输入的终止条件 for(i=0;i<len;i++) //输入 scanf("%d",&a[i]); // printf("递增排序结果:\n"); qsort(a, len, sizeof(a[0]), compInc); if(len%2==0) { //奇偶取中位数的方法不一样 k=(a[(len/2)-1]+a[(len/2)]); printf("%.2f\n",k/2.00); } else { k=a[len/2]; printf("%.2f\n",k);//注意输出格式 } // break; } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1