C语言 25个币 快来抢!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/25 18:18:36
将数字1、2、3、4、5、6填入一个2行3列的表格中,要使得每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。编写程序求出按此要求可有几种填写方法?

#include<stdio.h>
const long table[7][2]={{0,0},{1,1},{1,2},{1,3},{2,1},{2,2},{2,3}};

long jl[3][4];
long hash[7]={0};
long tot=0;

void check(){ //检查方案是否正确
long i,j,k;
long flag=1;
for(i=1;i<=3;i++){
if(jl[2][i]<jl[1][i]){
flag=0;break;
}
}
for(i=1;i<=2;i++){
for(j=2;j<=3;j++){
if(jl[i][j]<jl[i][j-1]){
flag=0;break;
}
}
}
if(flag){ //输出正确方案
tot++;
for(i=1;i<=2;i++){
for(j=1;j<=3;j++){
printf("%ld ",jl[i][j]);
}
printf("\n");
}
printf("\n");
}
}

void dfs(long x){ //枚举排布方案
long i;
if(x>6){
check();