带你刷 · C语言 | 猜名次

简介: 问:`5`位运动员参加了`10`米台跳水比赛,有人让他们预测比赛结果:`A`选手说:`B`第二,我第三;`B`选手说:我第二,`E`第四;`C`选手说:我第一,`D`第二;`D`选手说:`C`最后,我第三;`E`选手说:我第四,`A`第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次

在这里插入图片描述
啊我摔倒了..有没有人扶我起来学习....

题目

问:
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:

A选手说:B第二,我第三;

B选手说:我第二,E第四;

C选手说:我第一,D第二;

D选手说:C最后,我第三;

E选手说:我第四,A第一;

比赛结束后,每位选手都说对了一半,请编程确定比赛的名次

输入描述:
无
输出描述:
输出为一行


解法

1. 确定思路

  • 首先,我们观察到选手名都是字符型,比赛名次是整型
  • 其次每个人说话都是对了一半,我们想到用真为1,假为0表示,那么对一半的意思就转化为,把每个选手说的两句话的结果加起来就是1 + 0 == 1
  • 如此一来,只能通过遍历所有情况,再用这个条件进行判断

2. 编写代码

  • 根据上述思路,选手名都是字符型,比赛名次是整型,那就用选手名和比赛名次建立循环
对应代码:
    for (int A = 1; A <= 5; A++)
    {
        for (int B = 1; B <= 5; B++)
        {
            for (int C = 1; C <= 5; C++)
            {
                for (int D = 1; D <= 5; D++)
                {
                    for (int E = 1; E <= 5; E++)
                    {
                        //......
                    }
                }
            }
        }
    }
  • 然后再把判断条件加上
对应代码:
   if (((B == 2) + (A == 3) == 1) &&
       ((B == 2) + (E == 4) == 1) &&
       ((C == 1) + (D == 2) == 1) &&
       ((C == 5) + (D == 3) == 1) &&
       ((E == 4) + (A == 1) == 1))
   {
               printf("A=%d,B=%d,C=%d,D=%d,E=%d\n", A, B, C, D, E);
   }
  • 这时打印出来看看:

在这里插入图片描述

  • 我去。。!这么多种情况
  • 仔细观察会发现,原来有同名次的情况
  • 假如不想要同名次,咱们再加个限制条件来打印
if (A + B + C + D + E == 15 && A * B * C * D * E == 120)
    printf("A=%d,B=%d,C=%d,D=%d,E=%d", A, B, C, D, E);
  • 再看一下结果:

在这里插入图片描述嘿嘿~完美解决!

附上整个代码
#include<stdio.h>
int main()
{
    for (int A = 1; A <= 5; A++)
    {
        for (int B = 1; B <= 5; B++)
        {
            for (int C = 1; C <= 5; C++)
            {
                for (int D = 1; D <= 5; D++)
                {
                    for (int E = 1; E <= 5; E++)
                    {
                        if (((B == 2) + (A == 3) == 1) &&
                            ((B == 2) + (E == 4) == 1) &&
                            ((C == 1) + (D == 2) == 1) &&
                            ((C == 5) + (D == 3) == 1) &&
                            ((E == 4) + (A == 1) == 1))
                        {
                            if (A + B + C + D + E == 15 && A * B * C * D * E == 120)
                                printf("A=%d,B=%d,C=%d,D=%d,E=%d", A, B, C, D, E);
                        }
                    }
                }
            }
        }
    }

    return 0;
}

在这里插入图片描述

相关文章
|
Linux 开发工具
Linux配置软件仓库
Linux配置软件仓库。配置光盘内容为yum/dnf命令的软件仓库。
1899 0
|
数据采集 ice Sentinel
Google Earth Engine(GEE)——sentinel2数据介绍
Google Earth Engine(GEE)——sentinel2数据介绍
1807 0
Google Earth Engine(GEE)——sentinel2数据介绍
|
12月前
|
算法
基于STM32定时器外部计数模式实现方波频率测量
基于STM32定时器外部计数模式实现方波频率测量
|
11月前
|
缓存 关系型数据库 MySQL
网站源码二次开发基础:环境搭建与简单修改步骤
本文围绕 PageAdmin(PA)开源 CMS 展开,聚焦新手二次开发核心:先明确 PHP、MySQL 等环境需求,以 PHPStudy 为例详解安装配置、源码部署、数据库创建及系统安装步骤;再阐述后台登录、基础信息修改、栏目与内容管理、简单模板调整及缓存清理等实操流程,为新手提供清晰易懂的入门指南。
1444 11
|
11月前
|
弹性计算 监控 安全
阿里云渠道商:阿里云 EIP 怎么快速上手?
阿里云弹性公网IP(EIP)实现IP与资源解耦,支持灵活绑定、动态调度,具备高可用、低成本、易管理等优势,助力企业快速构建稳定公网访问。
|
12月前
|
人工智能 供应链 算法
智能体来了!拥抱智能体:零基础者的职业新机遇与就业培训的时代使命
AI智能体正从概念走向产业应用,零基础者可通过系统培训掌握实用技能,实现职业突破。借助可视化工具,普通人也能快速入门,搭建解决实际问题的智能体。专业就业培训则打通技术与产业需求,培养复合型人才,推动个人成长与企业增效双赢,助力数字经济高质量发展。
374 5
|
SQL 数据可视化 BI
Quick BI产品测评:从数据连接到智能分析的全流程体验
瓴羊智能商业分析-Quick BI是阿里云旗下的云端智能BI平台,连续五年入选Gartner ABI魔力象限。它提供从数据接入到决策的全链路服务,支持零代码操作、40+可视化组件与OLAP分析,实现跨终端呈现。其创新点包括云原生架构、企业级安全体系及智能决策引擎,适用于零售、金融等行业。评测中,通过免费试用与官方文档,体验了数据准备、仪表板搭建及智能小Q功能,发现智能化能力强大但部分文档需更新优化。
1499 67
|
人工智能 运维 Serverless
GPU 降成本免运维,睿观 AI 助手选择函数计算
从跨境电商 ERP 到“睿观 AI 助手”,阿里云函数计算的支持下,深圳三态股份利用 AI 技术快速完成专利、商标、版权等多维度的侵权风险全面扫描。结合函数计算实现弹性算力支持,降低成本并提升效率,实现业务的快速发展。
|
数据可视化 开发工具 git
Sourcetree
Sourcetree 是一款免费的 Git 和 Hg 客户端管理工具,同时支持 Mn 版本控制系统。它为 Windows 和 Mac 用户提供了可视化的 Git 管理界面,使得用户能够轻松地创建、克隆、提交、推送、拉取和合并等 Git 操作。Sourcetree 还具有强大的代码对比功能,可以方便地查看和合并代码更改。
964 1
|
存储 算法
算法系列之搜索算法-广度优先搜索BFS
广度优先搜索(BFS)是一种非常强大的算法,特别适用于解决最短路径、层次遍历和连通性问题。在面试中,掌握BFS的基本实现和应用场景,能够帮助你高效解决许多与图或树相关的问题。
1400 1
算法系列之搜索算法-广度优先搜索BFS

热门文章

最新文章