题目:求从自然数1..m中任取r个数字的组合: #include <stdio.h> #define MAXSIZE 100 int count=0; void comb(int *,int,int,int); void main(){ //从自然数1..m中任意选取r个数字的组合 int m,k,r; int buffer[MAXSIZE]; m=5; r=k=3; comb(buffer,m,k,r); printf("/ntotal:%d",count); } void comb(int buffer[],int m,int k,int r){ //从[1..m]中选取k的数的组合 int i,j; for(i=m;i>=k;i--){ buffer[k-1]=i; if(k>1) comb(buffer,m-1,k-1,r); else{ for(j=r-1;j>=0;j--) printf("%d ",buffer[j]); count++; puts(""); }//else } }