knookda 2021-08-16 15:36 采纳率: 77.8%
浏览 40
已结题

怎样输出一组数据的中位数

怎样输出一组数据的中位数。一组数种有多个数据。输出这组数中的中位数

  • 写回答

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;  
    }   
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月16日
  • 已采纳回答 8月16日
  • 创建了问题 8月16日