题解 | 中位数 通过模2运算取下标不需要判断奇偶性

中位数

https://www.nowcoder.com/practice/2364ff2463984f09904170cf6f67f69a

#include <stdio.h>
#include <stdlib.h>

int cmp(const void *a,const void *b){
    return *(int *)a-*(int *)b;
}

int main() {
    int arr[10000];
    while (1==1) { // 注意 while 处理多个 case
        int n = 0;
        scanf("%d",&n);
        if(n==0){break;}
        else{
            for(int i = 0;i < n;i++){
                scanf("%d",&arr[i]);
            }
        }
        qsort(arr, n, sizeof(int),cmp);
        printf("%d\n",(arr[n/2]+arr[(n-1)/2])/2);
	  //n=4时下标为0-3,计算(arr[2]+arr[1])/2  
	  //n=5时下标为0-4,计算(arr[2]+arr[2])/2 
    }
    return 0;
}

全部评论

相关推荐

大叔叔1:你把自己说的话打码,所以你想表达什么
点赞 评论 收藏
分享
小浪_Coding:个人技能一条测试没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务