在数组中插入一个数字(求大神)
题目描述已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入要求
第一行,原始数列。 第二行,需要插入的数字
输出要求
排序后的数列
假如输入
1 7 8 17 23 24 59 62 101
50
应当输出
1
7
8
17
23
24
50
59
62
101
求大神教!
程序代码:
#include <stdio.h>
void Merge(int c[], int *nc,int a[],int na,int b[], int nb);
int main()
{
int i,n,m;
int nc = 0;
scanf("%d%d",&n,&m);
int a[n],b[m],c[n+m];
for(i = 0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
Merge(c,&nc,a,n,b,m);
for(i=0;i<m+n;i++)
{
printf("%d ",c[i]);
}
return 0;
}
void Merge(int c[], int *nc,int a[],int na,int b[], int nb)
{
int cursora = 0;
int cursorb = 0;
int cursorc = 0;
while((cursora<na)&&(cursorb<nb))
{
if (a[cursora]<= b[cursorb])
{
c[cursorc++]=a[cursora++];
}
else
{
c[cursorc++]=b[cursorb++];
}
}
while(cursora<na)
{
c[cursorc++]=a[cursora++];
}
while(cursorb<nb)
{
c[cursorc++]=b[cursorb++];
}
*nc = cursorc;
}
