/*在一个已经有序的数组内,增加一个元素,找到位置使之依然有序(原数组有一位空缺)*/
# include <stdio.h>
int main ()
{
int m[10] = {10,20,30,40,50,60,70,80,90} ;
int i ,tmp ;
printf ("pelase input a number \nm[10]= ");
scanf("%d",&m[9]);
printf ("before insert \nm[]= ") ;
for (i=0 ; i<10 ; i++)
printf ("%d ",m[i] ) ;
printf ("\n") ;
tmp = m[9] ; //否则容易和后边数组混淆
for (i=8 ; i>=0 ; i--) //插入的数直接和倒数向前比较
{
if (tmp < m[i])
m[i+1] = m[i] ; //如果前边的数比这个数还小,就向后移一位
else
break ; //如果大就停止
}
m[i+1] = tmp ; //当遇到m[i]停止时,tmp插入的位置应该是m[i+1]
printf ("after insert\nm[] = ") ;
for (i=0 ; i<10 ; i++)
printf ("%d ",m[i] ) ;
printf ("\n");
return 0 ;
}