题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
实例:
1 #include<stdio.h> 2 int main() 3 { 4 int a[11]={1,4,6,9,13,16,19,28,40,100}; 5 int temp1,temp2,number,end,i,j; 6 printf("原始数组是:\n"); 7 for(i=0;i<10;i++) 8 printf("%4d",a[i]); 9 printf("\n插入一个新的数字: "); 10 scanf("%d",&number); 11 end=a[9]; 12 if(number>end) 13 a[10]=number; 14 else 15 { 16 for(i=0;i<10;i++) 17 { 18 if(a[i]>number) 19 { 20 temp1=a[i]; 21 a[i]=number; 22 for(j=i+1;j<11;j++) 23 { 24 temp2=a[j]; 25 a[j]=temp1; 26 temp1=temp2; 27 } 28 break; 29 } 30 } 31 } 32 for(i=0;i<11;i++) 33 printf("%4d",a[i]); 34 printf("\n"); 35 return 0; 36 }
以上实例输出结果为:
原始数组是: 1 4 6 9 13 16 19 28 40 100 插入一个新的数字: 10 1 4 6 9 10 13 16 19 28 40 100
感谢你的阅读,请用心感悟!希望可以帮到爱学习的你!!分享也是一种快乐!!!请接力。。。
原文:https://www.cnblogs.com/kangyifan/p/13054695.html