有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
此元素之后的数,依次后移一个位置。
//由简单的到复杂的通用的
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 }

浙公网安备 33010602011771号