因为数组在初始条件下是有序的,而题目要求插入新数后数组仍有序。因此,首先应该在数组中找到插入位置,然后将该位置原有的数以及该位置后面的数都依次后移一个位置,为新插入的数值空出一个位置。
#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");
}
时间: 2024-10-17 09:49:02