C语言数组
4.有2行3列的矩形框,填入6个数字1-6,要求左边的数字比右边的打,上边的数字比下边的大,请编写程序求出所有可能的填写方法。...
4.有2行3列的矩形框,填入6个数字1-6,要求左边的数字比右边的打,上边的数字比下边的大,请编写程序求出所有可能的填写方法。
展开
3个回答
展开全部
#include <stdio.h>
void permutation(char a[], int m, int n)
{
int i,j;
char t;
if (m<n-1)
{
permutation(a, m+1, n);
for (i=m+1;i<n;i++)
{
t=a[m]; a[m]=a[i]; a[i]=t;
permutation(a, m+1, n);
t=a[m]; a[m]=a[i]; a[i]=t;
}
}
else
{
if(a[0]>a[1]&&a[1]>a[2]&&a[3]>a[4]&&a[4]>a[5]&&a[0]>a[3]&&a[1]>a[4]&&a[2]>a[5])
printf("%c%c%c\n%c%c%c\n\n",a[0],a[1],a[2],a[3],a[4],a[5]);
}
}
int main()
{
char a[]="123456";
permutation(a, 0,6);
getch();
return 0;
}
void permutation(char a[], int m, int n)
{
int i,j;
char t;
if (m<n-1)
{
permutation(a, m+1, n);
for (i=m+1;i<n;i++)
{
t=a[m]; a[m]=a[i]; a[i]=t;
permutation(a, m+1, n);
t=a[m]; a[m]=a[i]; a[i]=t;
}
}
else
{
if(a[0]>a[1]&&a[1]>a[2]&&a[3]>a[4]&&a[4]>a[5]&&a[0]>a[3]&&a[1]>a[4]&&a[2]>a[5])
printf("%c%c%c\n%c%c%c\n\n",a[0],a[1],a[2],a[3],a[4],a[5]);
}
}
int main()
{
char a[]="123456";
permutation(a, 0,6);
getch();
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询