有一个有序数组,要求将一个新输入的数插入到数组中并保证插入新数后,数组仍有序。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有一个有序数组,要求将一个新输入的数插入到数组中并保证插入新数后,数组仍有序。相关的知识,希望对你有一定的参考价值。
有一个有序数组,要求将一个新输入的数插入到数组中并保证插入新数后,数组仍有序。
因为数组在初始条件下是有序的,而题目要求插入新数后数组仍有序。因此,首先应该在数组中找到插入位置,然后将该位置原有的数以及该位置后面的数都依次后移一个位置,为新插入的数值空出一个位置。
#include<stdio.h>
int main()
{
int a[11] = {2, 4, 8, 15, 20, 36, 49, 51, 78, 96};
int temp1, temp2, number, end, i, j;
printf("The original arry is:\n");
for(i = 0; i < 10; i++)
printf("%5d", a[i]);
printf("\n");
printf("Please insert a new number:");
scanf("%d", number);
end = a[9];
if(number > end)
a[10] = 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;
}
}
}
for(i=0; i<11; i++)
printf("%6d", a[i]);
printf("\n");
}
以上是关于有一个有序数组,要求将一个新输入的数插入到数组中并保证插入新数后,数组仍有序。的主要内容,如果未能解决你的问题,请参考以下文章