Xcode写C++(程序练习5)

两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,乙队为X,Y,Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。

本题的难点在于,除了要筛选A不和X比,C不和X,Z比的条件所得结果以外,还需要保证1对1不重复,即A,B,C三人所面向对象不重复。
1⃣️开始时的错误代码:

#include <iostream>
//穷举
void Match()
{
    for(char a='X';a<='Z';a++)//a为A的对手
    {
        for(char b='X';b<='Z';b++)//b为B的对手
        {
            for(char c='X';c<'Z';c++)//c为C的对手
            {
                if(a!='X'&&c!='X'&&c!='Z')
                {
                    printf("A->%c,B->%c,C->%c\n",a,b,c);
                }
            }
        }
    }
}
int main()
{
    Match();
}

输出结果如下:由结果我们可以看出,非1对1。
在这里插入图片描述
2⃣️我们将代码进行修改后:(在条件语句中加入了a!=b&&a!=c&&b!=c,即A、B、C对应的X、Y、Z是1对1的)

#include <iostream>
//穷举
void Match()
{
    for(char a='X';a<='Z';a++)//a为A的对手
    {
        for(char b='X';b<='Z';b++)//b为B的对手
        {
            for(char c='X';c<'Z';c++)//c为C的对手
            {
                if(a!='X'&&c!='X'&&c!='Z'&&a!=b&&a!=c&&b!=c)
                {
                    printf("A->%c,B->%c,C->%c\n",a,b,c);
                }
            }
        }
    }
}
int main()
{
    Match();
}

输出正确结果:A->Z,B->X,C->Y
在这里插入图片描述
源代码如下:
#include
//穷举
void Match()
{
for(char a=‘X’;a<=‘Z’;a++)//a为A的对手
{
for(char b=‘X’;b<=‘Z’;b++)//b为B的对手
{
for(char c=‘X’;c<‘Z’;c++)//c为C的对手
{
if(a!=‘X’&&c!=‘X’&&c!=‘Z’&&a!=b&&a!=c&&b!=c)
{
printf(“A->%c,B->%c,C->%c\n”,a,b,c);
}
}
}
}
}
int main()
{
Match();
}

原创文章 6 获赞 13 访问量 168

猜你喜欢

转载自blog.csdn.net/Mugler_/article/details/106162627