有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
此元素之后的数,依次后移一个位置。

//由简单的到复杂的通用的

int main()
{
int arr1[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,num,end,i,j;

printf("请输入原始数组:\n");
for(i=0;i<10;i++)
{
printf("%5d",arr1[i]);
}
printf("\n");
printf("insert a new number:");
scanf("%d",&num);
end=arr1[9];
if(num>end)
{
arr1[10]=num;
}
else{
for(i=0;i<10;i++)
{
if(arr1[i]>num)
{
temp1=arr1[i];
arr1[i]=num;
for(j=i+1;j<11;j++)
{
temp2=arr1[j];
arr1[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
{
printf("%6d",arr1[i]);
}
return 0;
}

猜你喜欢

转载自www.cnblogs.com/gs1124/p/9391457.html