c语言,求一个数组中,中间值的大小怎么做?

来源:百度知道 编辑:UC知道 时间:2024/05/10 04:49:24
数组是double的一维数组。
数组大小是确定的。

楼主,这道题我的思路是先排序,然后输出排序后中间元素的值
一楼的思路也不错,可以参考
祝楼主进步~
程序如下:
#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值,可以改变数组大小

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