📄 ep2_15.cpp
字号:
/*2.15 两队选手每队5人进行一对一的比赛,甲队为A、B、C、D、E,乙队为J、K、L、M、N,
经过抽签决定比赛对手名单。规定A不和J比赛,M不和D及E比赛。列出所有可能的比赛名单。
提示:先固定甲队,A在0号位,B在1号位,依次排列,最后E在4号位;然后乙队排对应的对手,
用循环变量j、k、l、m、n分别对应0号位的选择、1号位的选择、依次类推,直到到4号位的选
择,每一层循环应剔除上一轮已选过的选手,和指定不与比赛的对手。用变量i统计不同情况数。*/
#include<iostream>
using namespace std;
int main(){
char st1[5]={'A','B','C','D','E'},st2[5]={'J','K','L','M','N'};
int i=0,j,k,l,m,n;
for(j=0;j<5;j++){//0号位
if(j==0) continue;//A选手不与选手J比赛,即st1[0]不与st2[0]比赛
for(k=0;k<5;k++){//1号位
if(k==j) continue;//剔除乙队占据0号位的选手
for(l=0;l<5;l++){//2号位
if(l==j||l==k) continue;//剔除乙队占据0、1号位的选手
for(m=0;m<5;m++){//3号位
if(m==j||m==k||m==l) continue;//剔除乙队占据0、1、2号位的选手
if(m==3) continue;//st1[3]不与st2[3]比赛,即D不与M比赛
for(n=0;n<5;n++){//4号位
if(n==j||n==k||n==l||n==m) continue;//剔除乙队占据0、1、2、3号位的选手
if(n==3) continue;//st1[4]不与st2[3]比赛,即E不与M比赛
cout<<st1[0]<<'-'<<st2[j]<<'\t'<<st1[1]<<'-'<<st2[k]<<'\t';
cout<<st1[2]<<'-'<<st2[l]<<'\t'<<st1[3]<<'-'<<st2[m]<<'\t';
cout<<st1[4]<<'-'<<st2[n]<<endl;
i++;
}
}
}
}
}
cout<<i<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -