例题:有一个已经排好序的数组,元素分别是:1,3,5,7,9,从键盘上输入一个元素,将这个元素插入到数组中,使数组仍保持从小到大排序。 输出时各元素的最小宽度为5。 例: (1)输入:0 输出: 0 1 3 5 7 9 (2)输入:2 输出: 1 2 3 5 7 9 (3)输入:5 输出: 1 3 5 5 7 9 (4)输入:10 输出: 1 3 5 7 9 10
在这个问题中:
把插入的元素当作 (排好序的)数组的第一个元素。这样就可以看成有6个无序元素的数组。直接就是依次进行比大小。
#include
int main()
{
int a[6]={0,1,3,5,7,9};//第一个元素的值是多少都没关系,后面可以赋值改变它。
int n;//n代表我们要插入的元素。
int i,t;
scanf("%d",&n);
a[0]=n;//这里就把要插入的值赋给第一个元素。
//下面的循环就是开始比大小。
for(i=1;ia[i])
{
//这里必须是前后两个元素交换值,如果插入值是最大的,就要与每一个元素比较。
t=a[i-1];
a[i-1]=a[i];
a[i]=t;
}
else break;//没有比插入值大的话就结束循环。
}
for(i=0;i |