C语言在有序的数列中插入若干个数,使数列在插入过程中始终保持有序
一个有序的数列中插入若干个数,这个数列依然是有序的。
代码如下:
#include<stdio.h>
int main()
{
int a[150]={12,21,32,45,51,69,78,84,90,96};
int b[100];
int n,i,j,k;
printf("输入要插入数的个数:");
scanf("%d",&n);
printf("依次输入要插入的数:");
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
for(j=9+i;j>=0;j--) //原数组从最后一个数开始与b[i]相比较
{
if(b[i]<a[j]) // 如果b[i]小于最后一个数,那么最后一个数的位置向后面挪一位
{
a[j+1]=a[j];
if(j==0) //当b[i]小于a中所有数时,另第一项等于b[i]
{
a[j]=b[i];
}
}
else // 如果b[i]大于最后一个数,那么b[i]就会插入到最后一个数后面
{
a[j+1]=b[i];
break;
}
}
}
for(k=0;k<10+n;k++)
{
printf ("%d ",a[k]);
}
}