标题:郁闷...电脑报编程题!
只看楼主
GXN
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-10-6
 问题点数:0 回复次数:3 
郁闷...电脑报编程题!

五个学生A,B,C,D,E参加某一向比赛。甲,乙两个人。甲猜比赛名次为A,B,C,D,E结果没有猜中任何一个 名次也没猜中任何一对相临的名次(所谓相邻是指其中没有一对选手在名次上相邻.如1与2或2与3)乙猜D,A,E,C,B 猜中两个学生的名次和相邻的名次..问比赛结果如何..?????我自己不太明白..希望大家帮助

大家来讨论吧!!!!!

另外做一个调查..请把你编程的时间写出..谢(一定要真实)...

搜索更多相关主题的帖子: 电脑报 
2004-11-30 12:49
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
得分:0 

不明白你说的相邻是什么意思,你可以说的更清楚一些么?


差点把你忘了...
2004-11-30 13:40
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
得分:0 

搞不懂~~~

看你们的把,.


2004-11-30 15:29
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
得分:0 

#include <stdio.h> /********************************************** 五个学生A,B,C,D,E参加某一向比赛。甲,乙两个人。 甲猜比赛名次为A,B,C,D,E结果没有猜中任何一个 名次也没猜中任何一对相临的名次(所谓相邻是指其中没 有一对选手在名次上相邻.如1与2或2与3)乙猜D,A,E,C,B 猜中两个学生的名次和相邻的名次..问比赛结果如何.. **********************************************/ bool likeFirst(char a[5]) { int i=0; for( i=0;i<5;i++)//甲猜比赛名次为A,B,C,D,E结果没有猜中任何一个 { if('A'+i==a[i]) return true; }

for(i=0;i<4;i++)//名次也没猜中任何一对相临的名次 { if(a[i]-a[i+1]==-1) return true; }

return false; }

bool likeSecond(char a[5]) { int i=0,j=0,n=0,k=0,l=0; char second[5]={'D','A','E','C','B'};

if(likeFirst(a)) return false; n=0; for(i=0;i<5;i++) { if(a[i]==second[i]) { if(n==0) k=i; else l=i; n++; } } if(n!=2) return false;

for(i=0;i<5-1-2;i++) for(j=i+2;j<5-1;j++) { if(k==i && l==i+1 && k!=1) return true; if(k==j && l==j+1) return true; }

return false; }

void main() { char a[6]="ABCDE"; int nn=0;

printf("五个学生A,B,C,D,E参加某一向比赛。\n"); printf("甲,乙两个人。甲猜比赛名次为A,B,C,D,E\n"); printf("结果没有猜中任何一个名次也没猜中任何一对相临的名次\n"); printf("(所谓相邻是指其中没有一对选手在名次上相邻.如1与2或2与3)\n"); printf("乙猜D,A,E,C,B猜中两个学生的名次和相邻的名次..\n"); printf("问比赛结果如何..\n");

for(int i=0;i<5;i++) { a[0]='A'+i; for(int j=0;j<5;j++) { a[1]='A'+j; if(a[0]==a[1]) continue; for(int k=0;k<5;k++) { a[2]='A'+k; if(a[0]==a[2] || a[1]==a[2]) continue; for(int m=0;m<5;m++) { a[3]='A'+m; if(a[0]==a[3] || a[1]==a[3] || a[2]==a[3]) continue; for( int n=0;n<5;n++) { a[4]='A'+n; if(a[0]==a[4] || a[1]==a[4] || a[2]==a[4] || a[3]==a[4]) continue; else if(likeSecond(a)) { nn++; printf("%s ",a); if(nn%5==0) { printf("\n"); } } } } } } } printf("\n"); }

发了我193分钟!!不过程序写的不怎么样!!


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-12-01 02:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-8604-1-1.html




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

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