用函数int fun(int *s,int n,int *k),用来求出元素不同的数组的中位数

【问题描述】

请编写一个函数int fun(int *s,int n,int *k),用来求出元素不同的数组的中位数在数组中的下标并存放在k所指向的存储单元中的值,然后在主函数中调用并输出。所谓中位数,对于数组中的元素个数为奇数时元素为大小为正中的那个数;元素个数偶数时元素大小为正中的二个数,但在本例中只取其较小的那个。

【输入形式】

依次输入数组元素个数和数组元素
【输出形式】

中位数在原数组中的下标和值
【样例输入】

5

5 4 3 2 1
【样例输出】

2,3

该回答引用GPT:

int fun(int *s, int n, int *k)
{
    int temp;
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - 1 - i; j++)
        {
            if (s[j] > s[j + 1])
            {
                temp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = temp;
            }
        }
    }
    if (n % 2 == 0)
    {
        *k = n / 2 - 1;
    }
    else
    {
        *k = n / 2;
    }
    return s[*k];
}

调用函数fun(),可以求出元素不同的数组的中位数在数组中的下标和值。
如还有疑问,可留言帮助解决。