标题:c语言问题,请帮帮我javascript:insertText('06','em');
只看楼主
kuuhaku
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-10-25
结帖率:33.33%
已结贴  问题点数:10 回复次数:3 
c语言问题,请帮帮我javascript:insertText('06','em');
A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。

穷举法 假设0表示不参加 ,1表示参加
将每一种情况都用代码表示出来
for循环、if语句、逻辑运算符、continue
搜索更多相关主题的帖子: 一个人 c语言 javascript 表示 参加 
2021-11-18 21:54
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
(2)B和C只有一个人参加;

是“且只有一个人参加”
还是“至多只有一个人参加”
2021-11-19 08:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <stdio.h>
#include <stdbool.h>

int main( void )
{
    // 总共就32种情况,那穷举最合算
    for( unsigned i=0; i!=1u<<5; ++i )
    {
        bool a = i&(1u<<0);
        bool b = i&(1u<<1);
        bool c = i&(1u<<2);
        bool d = i&(1u<<3);
        bool e = i&(1u<<4);

        // 以下条件随便写,只要符合题意就行
        if( a && !b )     // (1)A参加时,B也参加
            continue;
        if( b+c != 1 )    // (2)B和C只有一个人参加;------ 补成“有且只有一个人参加”
            continue;
        if( c != d )      // (3)C和D或者都参加,或者都不参加;
            continue;
        if( !d && !e )    //(4)D和E中至少有一个人参加;
            continue;
        if( e && !(a&&d) ) // (5)如果E参加,那么A和D也都参加。
            continue;

        printf( "%u%u%u%u%u\n", a, b, c, d, e ); // 00110
    }
}
2021-11-19 11:21
kuuhaku
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-10-25
得分:0 
回复 2楼 rjsp
这个我也不知道
2021-11-20 09:15



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




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

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