有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
#include<stdio.h>
#include<stdlib.h>
//#include<math.h>
void main()
{
int t,n,m,i,j;
int k,a[100];
while (scanf("%d%d", &n,&m))
{
if (n == 0 && m == 0)
break;
if (n<=100)
for (i = 0; i < n; i++)
scanf("%d",&a[i]);
for ( i = 0; i < n-1;i++) //对输入的数进行排序
for (j = i + 1; j < n; j++)
{
if (a[i]>a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
for (i = n-1; i >= 0; i--)
{
if (a[i] > m)
{
a[i + 1] = a[i]; //将大于需插入元素的位置后移
k = i; //找出需插入元素的位置k
}
}
a[k] = m;
for (i = 0; i <n; i++)
printf("%d ",a[i]);
printf("%d",a[n]);
printf("\n");
}
system("pause");
}