求排列组合没有简单方法。方法只有一个,枚举。
有几个位置需要列举,就需要几个循环。如果循环数量太多,可以用函数递归来枚举。
例程:
#include
int main(){
int a[4]={1,3,4,7}; //第一个位置
int b[4]={2,5,8,10}; //第二个位置
int c[4]={6,9,11,12}; //第三个位置
int i,j,k;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
printf("%d %d %d\n,",a[i],b[j],c[k]);//输出一种排列
getch();
return 0;
}
#include
main(){
int a[4]={1,3,4,7};
int b[4]={2,5,8,10};
int c[4]={6,9,11,12};
int i,j,n;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{printf("%d&%d\t,",a[i],b[j]);
printf("%d&%d\t,",a[i],c[j]);
printf("%d&%d\t,",b[i],c[j]);
}
getch();
}
#include
#include
#include
int main()
{
int a[3][4]={{1,3,4,7},{2,5,8,10},{6,9,11,12}};
int i,j,x,y;
srand((unsigned)time(NULL));
i=rand()%3;
x=rand()%3;
j=rand()%4;
y=rand()%4;
printf("%d",a[i][j]);
printf(" %d\n",a[x][y]);
return 0;
}
有几个位置需要列举,就需要几个循环。如果循环数量太多,可以用函数递归来枚举。
例程:
12345678910111213 #include