/*插入一个数到已排序的数列中方法二。判断此数是若大于最后一个元素,
将该数据直接放在原数组的末尾,若不大于,则从头开始找到该数据应插入的某个位置,
在插入新数据前,将插入的元素依次与后面一个位置的元素交换,起到最后。*/
#include "stdio.h"
#include "stdlib.h"
main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf("\noriginal array is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert a new number:");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number) /*找到该数据应插入的某个位置 i*/
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++) /*插入的元素依次与后面一个位置的元素交换*/
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
printf("%6d",a[i]);
system("pause");
}