中间值是什么?一组数据中间怎么求?

如题所述

这道题我的思路是先排序,然后输出排序后中间元素的值
一楼的思路也不错,可以参考
祝楼主进步~
程序如下:
#include <stdio.h>
#include <math.h>
#define N 10
int Search(double a[]);

void main()
{
double a[N];
int i,mid;
printf("请输入数据:");
for(i=0;i<N;i++)
scanf("%lf",&a[i]);

mid=Search(a);
printf("中间值为:%.12f\n",a[mid]);
}

int Search(double a[])
{
int i,j,flag;
double tmp;
for(i=N-1;i>=0;i--)
{
flag=0;
for(j=0;j<i;j++)
{
if(fabs(a[j])-fabs(a[j+1])>1e-10)
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
flag++;
}
}
if(flag==0) break;
}
if(N%2)
return N/2+1;
else
return N/2;
}
-------------------------
修改宏定义的N值,可以改变数组大小
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答