c语言 调用函数求一个数组的中位数

如题所述

#include<stdio.h>
#define N 4
float mid(int *a)
{
int i,j,t;
float middle;
for(i=0;i<N;i++)//对数组从小到大排序
for(j=i+1;j<N;j++)
if(a[j]<a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("排序后数组:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
if(N%2==1)//求中位数
middle=a[N/2];
else
middle=(a[N/2]+a[N/2-1])/2.0;
return middle;
}

void main()
{
int a[N],i;
float middle;
printf("请输入%d个数:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
middle=mid(a);
printf("中位数是:%f\n",middle);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-19
strlen();该函数返回字符串的长度。
第2个回答  2011-02-19
最简单的办法就是先讲数组中的元素排序,然后就可以直接查找中间元素就OK了
第3个回答  2011-02-19
多看看书吧,对你绝对有好处!
相似回答