C语言求助,把一个数插入到一个已排好序的数组中

如题所述

1、可以用下面代码把数插入一个排好序的数组,数组进行迭代取值。

2、下面是数组排序的代码,这里是按大小排序的,每次取值和输入的数比较,比输入的数小,就往后移动移位,直到移出输入数该放的位置,反之也是。

3、或者用下图的代码实现,有一个已排好序的数组,现在插入一个数字。

4、按原来已排好的排序规律将它插入数组,i++循环比较简单。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-28
可参考这个程序(我自己编的,不足之处请见谅),在visual C++6.0中运行通过!
#include <stdio.h>
void main()
{
int a[11]={1,3,5,9,23,34,51,68,91,100};
int num,i,j;
printf("array a is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\nplease input a number:\n");
scanf("%d",&num);
if(num>a[9])
a[10]=num;
else
{
for(i=0;i<10;i++)
if(num<a[i])
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=num;
break;
}
}
printf("the array now is:");
for(i=0;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
}本回答被提问者采纳
第2个回答  2009-12-07
先找到要插入的位置,然后从最后一个数开始直到刚才找到那个位置为止,依次向后移一个位置,最后将数插入到空出来的位置上。