题目的意思是:一个有序的数列中插入一个数,这个数列依然是有序的。
1 3 5 7 9 当插入6时,数列应当变成这样
1 3 5 6 7 9
算法:原数组从最后一个数开始与number相比较。
如果number大于最后一个数,那么number就会插入到最后一个数后面 (array[j+1]=number),而且比较在这里就会结束了。程序中使用break
来结束。
如果number小于最后一个数,那么最有一个数的位置向后面挪一位,number 就在最后一个数的这个位置。
代码如下:
#include<stdio.h>
int main(void)
{
int array[10]={1,3,5,7,9};
int number,j;
printf("please input the number:\n");
scanf("%d",&number);
for(j=4;j>=0;j--)
{
if(array[j]>number)
{
array[j+1]=array[j];
array[j]=number;
}
else
{
array[j+1]=number;
break;
}
}
for(j=0;j<6;j++)
{
printf("%5d",array[j]);
}
}