在数组中插入一个数字(求大神)
题目描述已有一个已排好的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; }