C语言:猜名次

题目:

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

            

A选手说:B第二我第三

B选手说:我第二E第四

C选手说:我第一D第二

D选手说:C最后我第三

E选手说:我第四A第一

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

                    

 =========================================================================

                       

思路:

总体思路:

1 表示 ,用 0 表示

因为 都说对了一半,所以有

一半 + 另一半 = 1

只有一半为 真,即 1;另一半为 假,即 0

             

(一).

创建变量 A B C D E

            

组合排列所有情况:

因为有 5个名次,所以每个人都有 5种可能

可以用 for循环 循环5次 表示 5种可能

因为一个名次只能有一个

例如:如果A是第一名,那么其它四人中就不可能有第一名,

所以5个人 5个for循环 应该是嵌套着的

                 

(二).

把符合所有人说的情况全部列出来

使用 if条件判断语句判断条件即是5人说的情况

             

满足条件后还要确定5个名次各只出现一次

A * B * C * D * E == 120

(1 * 2 * 3 * 4 * 5 == 120)

             

进行打印

                


                 

第一步:

(1).

创建变量 A B C D E

            

(2).

组合排列所有情况:

因为有 5个名次,所以每个人都有 5种可能

可以用 for循环 循环5次 表示 5种可能

因为一个名次只能有一个

例如:如果A是第一名,那么其它四人中就不可能有第一名,

所以5个人 5个for循环 应该是嵌套着的

                     

实现代码:

#include <stdio.h>
int main()
{//创建变量:int A = 0;int B = 0;int C = 0;int D = 0;int E = 0;//组合排列所有情况:for (A = 1; A <= 5; A++)//A的所有可能性(5个名次){for (B = 1; B <= 5; B++)//B的所有可能性(5个名次){for (C = 1; C <= 5; C++)//C的所有可能性(5个名次){for (D = 1; D <= 5; D++)//D的所有可能性(5个名次){for (E = 1; E <= 5; E++)//E的所有可能性(5个名次){}}}}}return 0;
}

实现图片:

                 


                 

第二步:

把符合所有人说的情况全部列出来

          

(1).

使用 if条件判断语句判断条件即是5人说的情况

             

(2).

满足条件后还要确定5个名次各只出现一次

A * B * C * D * E == 120

(1 * 2 * 3 * 4 * 5 == 120)

             

(3).

进行打印

                     

实现代码:

#include <stdio.h>
int main()
{//创建变量:int A = 0;int B = 0;int C = 0;int D = 0;int E = 0;//组合排列所有情况:for (A = 1; A <= 5; A++)//A的所有可能性(5个名次){for (B = 1; B <= 5; B++)//B的所有可能性(5个名次){for (C = 1; C <= 5; C++)//C的所有可能性(5个名次){for (D = 1; D <= 5; D++)//D的所有可能性(5个名次){for (E = 1; E <= 5; E++)//E的所有可能性(5个名次){//组合排列了所有情况后,把符合所有人说的情况全列出来: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)){//确定5个名次各只出现一次:if (A * B * C * D * E == 120){//进行打印:printf("A=%d B=%d C=%d D=%d E=%d\n", A, B, C, D, E);}}}}}}}return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{//创建变量:int A = 0;int B = 0;int C = 0;int D = 0;int E = 0;//组合排列所有情况:for (A = 1; A <= 5; A++)//A的所有可能性(5个名次){for (B = 1; B <= 5; B++)//B的所有可能性(5个名次){for (C = 1; C <= 5; C++)//C的所有可能性(5个名次){for (D = 1; D <= 5; D++)//D的所有可能性(5个名次){for (E = 1; E <= 5; E++)//E的所有可能性(5个名次){//组合排列了所有情况后,把符合所有人说的情况全列出来: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)){//确定5个名次各只出现一次:if (A * B * C * D * E == 120){//进行打印:printf("A=%d B=%d C=%d D=%d E=%d\n", A, B, C, D, E);}}}}}}}return 0;
}

实现效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/3867.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Docker-compose实现的Postgresql-11的主从复制

参考文章&#xff1a; http://t.csdn.cn/EnOVn http://t.csdn.cn/XTJqZ 记录一次主从复制的配置经历 服务器主从角色分配 ipdb 版本角色192.168.33.23411主192.168.33.22511从 docker-compose.yml文件 version: "3.3" services:postgres:image: postgresql-gis:11…

Linux:LNMP上搭建discuz论坛(源码安装)

LNMP环境 Linux &#xff1a;LNMP&#xff08;源码包安装&#xff09;_鲍海超-GNUBHCkalitarro的博客-CSDN博客 discuz论坛 准备好源码包 LNMP环境正常 yum -y install unzip unzip Discuz_X3.3_SC_UTF8.zip # unzip 源码包名称 mv upload/ /usr/local/nginx/html/tarro…

云从科技大模型之路:昇思“黑土地”上的生态炼成记

文 | 智能相对论 作者 | 李永华 一线客户经理&#xff0c;为客户一键生成周全的资产配置建议&#xff1b; 中端管理人员&#xff0c;获得系统自动撰写的一整套数据分析报表&#xff0c;快速、准确授信&#xff1b; 金融市场的“操盘手”&#xff0c;能够实时获取那些影响市…

【框架源码】Spring源码解析之BeanDefinition加载流程解析

观看本文之前&#xff0c;我们先思考一个问题&#xff0c;Spring是如何描述Bean对象的&#xff1f; Spring是根据BeanDefinition来创建Bean对象&#xff0c;BeanDefinition就是Spring中表示Bean定义。BeanDefinition用来存储Bean的相关信息&#xff0c;主要包括&#xff1a;Be…

自动驾驶开源数据集(附下载链接)

自动驾驶是带动新兴产业的一个突破点&#xff0c;也是中国结合新能源汽车&#xff0c;实现汽车产业弯道超车的不二手段&#xff0c;是打破国外燃油车技术壁垒的关键一步&#xff01;它不会停止&#xff0c;只是在蓄势待发&#xff01; 数据集介绍&#xff1a;点击 自动驾驶场…

人机融合是自由与决定的交互

人机融合是指人类与机器之间的紧密合作与互动。在这种融合中&#xff0c;人类使用机器的能力来增强自身的能力&#xff0c;而机器则依赖人类的指导和判断来发挥作用。这种融合可以带来许多好处和机会&#xff0c;但也伴随着一些挑战和风险。 首先&#xff0c;人机融合可以为人类…

【线程池】Java线程池的内部类Worker详解

目录 一、简介 二、Worker类对象的类图 三、Worker类对象的解释 4.2 Worker继承自AQS有何意义&#xff1f; 四、Worker的主要代码 4.1 运行worker 4.2 worker和ThreadPool的关系 五、Worker源码分析 5.1 Worker实现接口Runnable&#xff0c;执行run方法 5.2 核心方法…

Kafka:Kafka资料整理

一、官网 二、博主文章 1、kafka是什么 • Worktile社区 三、源码解读

基于springboot+Redis的前后端分离项目(三)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 优惠券秒杀 优惠券秒杀1 -全局唯一ID2 -Redis实现全局唯一Id3 添加优惠卷4 实现秒杀下单5 库存超卖问题分析6 优惠券秒杀-一人一单…

Docker创建Mysql容器

查看可以安装的mysql镜像: docker search mysql STARS为ok的就是官网支持我们可以安装的版本 拉取最新版本的mysql镜像: docker pull mysql:latest 拉取的时候如果网络不好的话可能会报错,报错后重新拉取就好 拉取成功后查看镜像: docker images 可以看到我已经拉取了…

Linux学习之服务管理工具systemctl

在CentOS 7中有两种服务集中管理工具&#xff1a; service systemctl /etc/init.d/中放着service的启动脚本。比如network这个脚本里边就有网络服务的启动脚本&#xff0c;cat network | wc -l可以看到这个文件中有264行内容。 /usr/lib/systemd/system下放着systemctl的启动脚…

【Rust】入门教程-7章

Package、Crate、Module 7.1 代码组织 7.2 路径 根级可以相互访问 super 关键字 pub struct 7.4 use关键字