c语言编一个程序,在有序的数列中插入若干数,每插入一个数都要保持有序。

用数组的相关知识解答…
敢不敢给我举个例子,具体的数,作出程序来给我看

已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。
main()
{ static int a[10]={1,7,8,17,23,24,59,62,101};int i,j,t;
scanf("%d",&a[9]);
for(i=9;i>0;i--)
if(a[i]<a[i-1])
{t=a[i-1];a[i-1]=a[i];a[i]=t;}
for(i=0;i<10;i++)
printf("%5d",a[i]);printf("\n");
}

main()
{
static int a[5]={1,4,5,6,7};
int i,t,b;
scanf("%d",&b);
for(i=0;i<5;i++)
{if(b<=a[i])
{t=a[i];a[i]=b;b=t;}
printf("%d ",a[i]);}
printf("%d",b);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-12
这个用链表最简单,就是查找和插入
用数组也不是很难,思路就是从最后那个数据开始比较,如数组时从小到大排列的,那就比价是否比这个数据大,要是小,那这个数组中的数就后移一位,在比较前面的,不大,就插入它后面
代码是
int
a[100];
//这里有部分数据如50个,a1~a49是有序的
int
c;
//这个是插入的数据
int
i,n;
n=50;
//这个是有序数据的个数
for(i=n-1;i>=0;i--)
{
if(c>a[i])
{a[i+1]=c;break;}
//插入就跳出循环
else
a[i+1]=a[i];
//要是小于,数据就后移一位,腾出一个空间
}
要是多个数据,就在加一个循环
第2个回答  2010-05-05
楼上的方法可行