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

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

 

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

 1 int main()
 2 {
 3 int arr1[11]={1,4,6,9,13,16,19,28,40,100};
 4 int temp1,temp2,num,end,i,j;
 5 
 6 printf("请输入原始数组:\n");
 7 for(i=0;i<10;i++)
 8 {
 9 printf("%5d",arr1[i]);
10 }
11 printf("\n");
12 printf("insert a new number:");
13 scanf("%d",&num);
14 end=arr1[9];
15 if(num>end)
16 {
17 arr1[10]=num;
18 }
19 else{
20 for(i=0;i<10;i++)
21 {
22 if(arr1[i]>num)
23 {
24 temp1=arr1[i];
25 arr1[i]=num;
26 for(j=i+1;j<11;j++)
27 {
28 temp2=arr1[j];
29 arr1[j]=temp1;
30 temp1=temp2;
31 }
32 break;
33 }
34 }
35 }
36 for(i=0;i<11;i++)
37 {
38 printf("%6d",arr1[i]);
39 }
40 return 0;
41 }

 

posted @ 2018-07-30 16:55  黑大帅gs  阅读(582)  评论(0编辑  收藏  举报