将1~6这6个数字按每行3个进行输出,输出时要求左边的数字比右边的大,上边的数字比下边的大,求出所有可能的填写方法并统计输出排列方法有多少种。

for:

#include <stdio.h>
void main()
{
	int i,j,k,l,m,n;
	for(i=1;i<=6;i++)
		for(j=1;j<=6;j++)
			for(k=1;k<=6;k++)
				for(l=1;l<=6;l++)
					for(m=1;m<=6;m++)
						for(n=1;n<=6;n++)
							if(i>j&&j>k&&i>l&&j>m&&k>n&&l>m&&m>n&&j!=l&&k!=m&&k!=l)
							{
								printf("%d %d %d\n%d %d %d\n\n",i,j,k,l,m,n);
							}							
}

while:

#include <stdio.h>
void main()
{
	int i,j,k,l,m,n;
	i=1;
		while(i<=6)
		{
			j=1;
			while(j<=6)
			{
				k=1;
				while(k<=6)
				{
					l=1;
					while(l<=6)
					{
						m=1;
						while(m<=6)
						{
							n=1;
							while(n<=6)
							{
								if(i>j&&j>k&&i>l&&j>m&&k>n&&l>m&&m>n&&j!=l&&k!=m&&k!=l)
								{
									printf("%d %d %d\n%d %d %d\n\n",i,j,k,l,m,n);
								}
								n++;
							}
							m++;
						}
						l++;
					}
					k++;
				}
				j++;
			}
			i++;
		}
}
do-while:

#include <stdio.h>
void main()
{
	int i,j,k,l,m,n;
	i=1;
		do
		{
			j=1;
			do
			{
				k=1;
				do
				{
					l=1;
					do
					{
						m=1;
						do
						{
							n=1;
							do
							{
								if(i>j&&j>k&&i>l&&j>m&&k>n&&l>m&&m>n&&j!=l&&k!=m&&k!=l)
								{
									printf("%d %d %d\n%d %d %d\n\n",i,j,k,l,m,n);
								}
								n++;
							}while(n<=6);
							m++;
						}while(m<=6);
						l++;
					}while(l<=6);
					k++;
				}while(k<=6);
				j++;
			}while(j<=6);
			i++;
		}while(i<=6);
}



阅读更多
个人分类: own
上一篇求出能使下式成立的最大数十进制整数3A4B5。
下一篇求出用数字0到9可以组成多少个没有重复数字的三位偶数。
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭