| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 968 人关注过本帖
标题:请指点这个题目的算法,不胜感激
只看楼主 加入收藏
chenfeiam
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-2-16
收藏
 问题点数:0 回复次数:13 
请指点这个题目的算法,不胜感激
有2行3列的矩形框,输入6个数字1~6,要求左边的数字比右边的大,上边的数字比下边的大,求出所有可能的填写方法。
搜索更多相关主题的帖子: 算法 感激 数字 
2006-02-16 16:26
chenfeiam
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-2-16
收藏
得分:0 
怎么没人指点我呢,自己先顶一下

2006-02-16 16:46
kikikoko
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-2-6
收藏
得分:0 
题目能不能说得更清楚一点

2006-02-16 16:51
chenfeiam
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-2-16
收藏
得分:0 
题目就是这样写的。我的理解是一个2*3的数组,其中元素的排列要求是左边的数字比右边的大,上边的数字比下边的大,这样的排列应该不只一种,请将所有的满足以上要求的排列都输出来。
我想的头都大了,一点思路都没有

2006-02-16 17:45
stdio
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-1-22
收藏
得分:0 
#include<stdio.h>
main()
{
int a[6], b, c, d, e, f, g, i;
for(b=1; b<7; b++)
{
a[0]=b;
for(c=1; c<7; c++)
{
if(c==b) continue;
a[1]=c;
for(d=1; d<7; d++)
{
if(d==c || d==b) continue;
a[2]=d;
for(e=1; e<7; e++)
{
if(e==d || e==c || e==b) continue;
a[3]=e;
for(f=1; f<7; f++)
{
if(f==e || f==d || f==c || f==b) continue;
a[4]=f;
for(g=1; g<7; g++)
{
if(g==f || g==e || g==d || g==c || g==b) continue;
a[5]=g;
if((a[0]>a[1] && a[0]>a[3]) && (a[1]>a[2] && a[1]>a[4]) && a[2]>a[5])
{
for(i=0; i<6; i++)
{
printf("%2d", a[i]);
if(!((i+1)%3)) printf("\n");
}
printf("\n");
}
}
}
}
}
}
}
getch();
return 0;
}

[此贴子已经被作者于2006-2-16 18:32:57编辑过]

2006-02-16 18:25
chenfeiam
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-2-16
收藏
得分:0 

感激涕淋,可是最后的getch();是什么意思啊,
倒数第2个if语句应该再加上&&a[3]>a[4]&&a[4]>a[5],呵呵


2006-02-16 19:00
stdio
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-1-22
收藏
得分:0 
是哦 呵呵 忘记了。。
getch()是从键盘读取一个字符

函数名: getch
功 能: 从控制台无回显地取一个字符
用 法: int getch(void);
程序例:

#include <stdio.h>
#include <conio.h>

int main(void)
{
char ch;

printf("Input a character:");
ch = getche();
printf("\nYou input a '%c'\n", ch);
return 0;
}

2006-02-16 19:12
chenfeiam
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-2-16
收藏
得分:0 

多谢啦

2006-02-16 19:15
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
收藏
得分:0 
真不明白5楼为什么不使用二维数组

2006-03-04 15:11
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
得分:0 
以下是引用chenfeiam在2006-2-16 17:45:00的发言:
题目就是这样写的。我的理解是一个2*3的数组,其中元素的排列要求是左边的数字比右边的大,上边的数字比下边的大,这样的排列应该不只一种,请将所有的满足以上要求的排列都输出来。
我想的头都大了,一点思路都没有

此种排序就一种方法吧!还有其他的吗?


2006-03-04 15:15
快速回复:请指点这个题目的算法,不胜感激
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017876 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved