題目表述:給定兩個排序后的陣列A和陣列B,其中A的末端有足夠的緩沖空間容納B,撰寫一個方法,將B合并入A并排序

#include<stdio.h> void combine(int *a,int *b); int len(int *a); int main() { int a[100]={1,4,9,11,13}; int b[4]={3,7,20}; int n=len(a)+len(b); int i; combine(a,b); for(i=0; i<n; i++) { printf("%d ",a[i]); } return 0; } void combine(int *a,int *b) { int current=len(a)+len(b)-1;//記錄合并和陣列的最后一個下標 int p1=len(a)-1; int p2=len(b)-1; while(current!=0) { if(a[p1]>b[p2]) { a[current]=a[p1]; p1--; } else { a[current]=b[p2]; p2--; } current--; } } int len(int *a) { int i=0; while(a[i]!='\0') { i++; } return i; }

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49375.html
標籤:C
上一篇:一套很有意思的C語言測驗題目
下一篇:多行字串寫法
