/*一个数组a[100]存放了1~100自然数,现在要求写一个函数comb(int n,int r), 打印出n以内的r个数的所有组合,例如comb(5,3),结果是: 1 2 3;124;125;234;... 注:123 和 321,213看做一个组合 */ #include <stdio.h> # define MAXN 100 int a[MAXN]; void comb(int m,int k) { int i,j; for (i=m; i>=k; i--) { a[k]=i; if (k>1) comb(i-1,k-1); else { for (j=a[0]; j>0; j--) printf("%d\t",a[j]); printf("\n"); } } } void main() { a[0]=3; comb(5,3); }