#include<stdio.h> #define N 100 //reverse pre-len of the array void Reverse(int *num, int len) { int i; for(i=0; i<len/2; i++) { num[i] = num[i] + num[len-1-i]; num[len-1-i] = num[i] - num[len-1-i]; num[i] = num[i] - num[len-1-i]; } } //use the funtion "Reverse()" to sort a array which "*num" point to void Sort(int *num, int len) { if(len<2) return; Sort(num,len-1); if(num[len-1]<num[len-2]) { Reverse(num,len); Reverse(num,2); Reverse(num,len); } Sort(num,len-1); } int main() { int num[N]; int i=0,n=0; //creat a array printf("how long the array you want to creat:/n"); scanf("%d",&n); for(i=0; i<n; i++) { printf("input the %ds data:",i+1); scanf("%d",&num[i]); } printf("/n"); printf("before sort:/n"); for(i=0; i<n; i++) printf("%d/t",num[i]); Sort(num,n); //Reverse(num,4); printf("/nafter sort:/n"); for(i=0; i<n; i++) printf("%5d/t",num[i]); printf("/n"); return 0; }