將一個整數插入到一個有序的陣列並輸出
阿新 • • 發佈:2021-08-06
1 #include <stdio.h> 2 #define N 100
//定義將整數插入到有序陣列中的函式 3 int Insert_key(int array[],int n,int key)//n:陣列array[]的長度 key:向陣列array[]中插入的整數 4 { 5 int j=0; 6 while(array[j]<key && j<n) 7 { 8 j++;//找不到比key大的元素要退出迴圈 9 }
//此時j的下標滿足條件array[j]>key && array[j-1]<key
10 for(int i=n-1;i>=j;i--) 11 { 12 array[i+1]=array[i]; 13 } 14 array[j]=key;//將key值插入到陣列下標為j的位置
//利用迴圈列印陣列; 15 for(int i=0;i<n+1;i++) 16 { 17 printf("%d ",array[i]); 18 } 19 } 20 int main() 21 { 22 /********** Begin **********/ 23 int n,key; 24scanf("%d\n",&n); 25 int array[N];//陣列的長度必須得大於n,因為陣列插入一個元素之後陣列的長度變為n+1; 26 for(int i=0;i<n;i++) 27 { 28 scanf("%d",&array[i]); 29 } 30 scanf("%d",&key); 31 Insert_key(array,n,key); 32 /********** End **********/ 33 return 0; 34 }