c语言 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。

如题所述

insert(int val,int* array,int* len)
//val为要插入的数,array为已排序的数组(假设为升序),len为数组元素个数。
{
int count,i;
i=*len;
for(count=0;count<i;count++)
{
if(val<array[count]) break;
}
do
{
array[i+1]=array[i];
i--;
}while(i>=count);
array[count]=val;
(*len)++; //插入后将数组长度增加一
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-19
#include "stdio.h"
main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int num,i,j;
printf("Array a:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert data:");
scanf("%d",&num);
for(i=0;i<10;i++)
if(a[i]>num)
{j=a[i];a[i]=num;num=j;}
a[i]=num;
printf("Now,array a:\n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
}
这绝对正确,我上机验证过了!!要加分啊。。。
第2个回答  2005-10-26
就按湛蓝水晶的做,另外,如果数组不大,这样就可以了,如果非常大的话,查找插入位置时可以考虑二分法
第3个回答  2005-10-26
for循环
遇到比它小货币它大时,插入
第4个回答  2005-10-26
2维数组
相似回答