• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C语言经典算法100例-022-乒乓球比赛名单问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我们来看题:

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 

1.分析,如果没有任何规矩可言,那么a可以跟x,y,z中的任何一个比,而b,c同样是,但是规矩是有的,那就是a,b,c不能和相同的对手比赛。所以,方法就是,三层循环,然后用条件语句层层筛选,打印出来满足需求的匹配。

2.源程序:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,k;  //i,j,k分别对应a,b,c的对手
    for(i='x';i<='z';i++)
        for(j='x';j<='z';j++)
            if(j!=i)
                for(k='x';k<'z';k++)
                    if(k!=i&&k!=j)
                        if(i!='x'&&k!='x'&&k!='z')
                            printf("a-%c b-%c c-%c",i,j,k);
    return 0;
}

刚开始看到这个题,我想得很复杂也没想到好的办法,后来看了答案才豁然开朗,只需要3个变量就可以了,因为a,b,c的位置是确定的,而且x,y,z可以转化为对应的整数,直接放到循环里就可以了。脑子好迟钝,学如逆水行舟,不进则退啊。

   

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[工具-001]C++更换EXE的ICON图标发布时间:2022-07-14
下一篇:
GNUC++的符号改编机制介绍(函数的名称粉碎格式解析)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap