【问题描述】
请编写一个函数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(),可以求出元素不同的数组的中位数在数组中的下标和值。
如还有疑问,可留言帮助解决。