试探算法(排列组合问题)~
代码先是参考网上的然后自己加以修改~程序代码:
#include<stdio.h> #define M 5 void fun(int a[],int b[],int n,int m,int s); void print(int k[]); int main() { int a[]={1,2,3,4,5,6,7,8,9,0}; int b[M]={0}; fun(a,b,0,0,sizeof(a)/sizeof(*a)); return 0; } void fun(int a[],int b[],int n,int m,int s) { int i=0; for (i=n;i!=s;++i) { b[m]=a[i]; if (m<M-1) fun(a,b,i+1,m+1,s); else print(b); } } void print(int k[]) { int i=0; for (;i!=M;++i) printf("%3d",k[i]); printf("\n"); }
[此贴子已经被作者于2017-3-1 23:27编辑过]