例题:有一个已经排好序的数组,元素分别是: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<stdio.h> 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;i<6;i++) { if(n>a[i]) { //这里必须是前后两个元素交换值,如果插入值是最大的,就要与每一个元素比较。 t=a[i-1]; a[i-1]=a[i]; a[i]=t; } else break;//没有比插入值大的话就结束循环。 } for(i=0;i<6;i++) { printf("%5d",a[i]); } return 0; }
如果有类似的问题就按大概的方式修改。
-
有其它想看的,私信一下,让我有动力输出。