用C语言程序,求两个有序序列的中位数(具体要求在下方),急求,谢谢啦

已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1…AN-1的中位数指A(N-1)/2的值,即第[(N+1)/2]个数(A0为第1个数)。
输入格式说明:
输入分3行。第1行给出序列的公共长度N(0<N<=100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。
输出格式说明:
在一行中输出两个输入序列的并集序列的中位数。

第1个回答  2014-04-03
int a[10010],b[10010],c[20020];
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);

for(i=1;i<=n;i++)
scanf("%d",&b[i]);

for(i=1,j=1,k=1;i<=n&&j<=n;)
if(a[i]<b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];

if(i>n) while(j<=n) c[k++]=b[j++];
if(j>n) while (i<=n) c[k++]=a[j++];
printf("%d",c[n]);

system ("pause");
return 0;
}本回答被提问者采纳
相似回答