第五十六题:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
#include "stdio.h"
void main()
{
int i,j,temp,temp1,temp2;
int number;
int end;
int a[9]={14,20,5,6,7,8,11,12};
//先排序(从大到小)
for(i=0;i<8;i++)
for(j=0;j<8-i;j++)
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<8;i++)
printf("%5d",a[i]);
printf("\n");
//输入那个要插入的数number
printf("Insert data:");
scanf("%d",&number);
//运算过程
end=a[7];
if(number<end) //如果新数比最后一下还小,那正好新数就放在最后。
a[8]=number;
else
{
for(i=0;i<8;i++)
{
if(a[i]<number)
{
temp1=a[i];
a[i]=number;
for(j=i+1;j<9;j++)
{
temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
//输出结果
printf("\nNow,the array is :\n");
for(i=0;i<9;i++)
printf("%5d",a[i]);}