1.有一个已待排序好的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。
设计思路:
插入的数与最后的数做比较,如果大于最后的数,直接插入到末尾;
如果不是,则与a[0]-a[i]的数做比较,比a[i]小的话,则插入到a[i]位置,a[i]元素往后移。
代码:
# include<stdio.h>
int main()
{
int i,j,end,number,temp1,temp2;
int a[11]={1,4,6,8,13,16,19,28,40,100};
printf("array a: \n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert data:");
scanf("%d",&number);
end=a[9];
if(number>end)
end=number;
else
{for(i=0;i<10;i++)
{if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{
temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
printf("now array a: \n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
结果展示: