沒太看懂樓主原來的意思,在原來代碼的基礎(chǔ)上修改
#includevoid exchange(int array[],int pos,int time);//交換數(shù)組值 int findmin(int [],int left,int right);//尋找最大值所在的單元下標(biāo) void recurselectsort(int [],int n);//選擇排序法遞歸 int size;//size為數(shù)字個(gè)數(shù) main() { int i,array[1000];//i為計(jì)數(shù)器 printf("please input the number of integers:"); scanf("%d",&size); printf("please input the integers:"); for(i=0;i { scanf("%d",&array[i]); } printf("the result is:"); recurselectsort(array,size);//選擇排序 for(i=0;i { printf("%d ",array[i]); } system("pause"); return 0; } void recurselectsort(int array[],int n)//n為已排好的數(shù)字個(gè)數(shù) { if(n!=1) { exchange(array,n-1,findmin(array,0,n-1)); recurselectsort(array,n-1); } else if(n==1) { return; // exchange(array,findmin(array,0,size-1),0); } } void exchange(int array[],int pos,int time)//交換數(shù)組元素。pos為交換的位置,time為第幾次交換(也是交換到time-1這個(gè)單元) { int mid; mid=array[time]; array[time]=array[pos]; array[pos]=mid; } int findmin(int array[],int left,int right)//尋找最小值。left,right分別為查找下界和上界 { int i,min=array[left],c=left; for(i=left;i<=right;i++) { if(array[i] { min=array[i]; c=i; } } return c; }