c语言计算跳水分数,C语言判断五位选手跳水名次

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

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

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

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

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

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

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

那我们就有了这样一个思路:假设第一位选手名次开始为一,在这位选手为一的情况下假设第二个人为一(名次可以并列),依次假设下去,即五个循环嵌套,最后使用题目条件判断,满足条件的输出结果,代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include

#include

int main() {

int a = 1;

int b = 1;

int c = 1;

int d = 1;

int e = 1;

for (; a <= 5; a++){

for (b = 1; b <= 5; b++){

for (c = 1; c <= 5; c++){

for (d = 1; d <= 5; d++){

for (e = 1; e <= 5; e++){

if (((a == 3) + (b == 2)) == 1 && \

((b == 2) + (e == 4)) == 1 && \

((c == 1) + (d == 2)) == 1 && \

((c == 5) + (d == 3)) == 1 && \

((e == 4) + (a == 1)) == 1)

{

printf("final result: a=%d,b=%d,c=%d,d=%d,e=%d\n", \

a, b, c, d, e);

}

}

}

}

}

}

system("pause");

return 0;

}

打印结果如下:

134835a2e6d1fcfae7338938afff2ebd.png

得到的结果是不是大吃一惊,怎么有的结果竟然没有第一名,开始我们思路很好,代码整体也没问题,但我们忽略了这个细节,我们没有排除不正常的名次,正常的名次肯定中间的名次是不能断(简称名次断节),可以并列,甚至可以都是第一名,那么我们就可以用一种十分巧妙的方法来排除这种名次断节的情况,接下来的讲解略有难度,小伙伴认真听。

定义一个整形,使用整形的最低的五个比特位来存五位选手的名次,从右到左比特位为第一名到第五名,比特位上有1就说明对应的那一位有名次, 比如后五位为00101,有第一名,有第三名,没第二名,这显然是不正确的,,就是1之间不能夹着0,比如00011,只有第一名和第二名,名次存在并列,这显然可以,我们只需在原先条件后加点筛选条件就好了,

判断条件如下:

if (((a == 3) + (b == 2)) == 1 && \

((b == 2) + (e == 4)) == 1 && \

((c == 1) + (d == 2)) == 1 && \

((c == 5) + (d == 3)) == 1 && \

((e == 4) + (a == 1)) == 1)

{

int flag = 0;//他的后五位比特位存名次

flag = flag|(1 << (a - 1));

flag = flag|(1 << (b - 1));

flag = flag|(1 << (c - 1));

flag = flag|(1 << (d - 1));

flag = flag|(1 << (e - 1));

while (flag)//比特位存在1,跳出这个循环有两种情况,\

一种是1之间夹着0,一种是比特位全部向右移动完遇到0退出循环

{

if (!(flag & 1))//排除是110等最低位为0的情况,

{

break;

}

flag >>= 1;//最低位不是0就向后移一位再检查最低位是不是0

}

if (flag == 0)//满足flag==0说明比特位正常移动完毕,比如00111,

这是个可以的结果,flag>>1执行三次之后最低位遇到0,跳出 \

while(flag)的循环,到了这里后flag为00000,flag==0,满足条件,\

输出正确结果

{

printf("final result: a=%d,b=%d,c=%d,d=%d,e=%d\n", \

a, b, c, d, e);

}

}

int flag = 0;//这段代码的作用是每次得到一个满足原始\

条件的a b c d e的数字时用1移位,比如得到a=1,b=2,c=1,d=2,e=3,

flag = flag|(1 << (a - 1));//flag二进制为00001

flag = flag|(1 << (b - 1));//flag二进制为00011

flag = flag|(1 << (c - 1));//flag二进制为00011

flag = flag|(1 << (d - 1));//flag二进制为00011

flag = flag|(1 << (e - 1));//flag二进制为00111//这个00111结果是满足条件的,所以最后输出abcde相应的值

完整代码:

#define _CRT_SECURE_NO_WARNINGS 1

#include

#include

int main() {

int a = 1;

int b = 1;

int c = 1;

int d = 1;

int e = 1;

for (; a <= 5; a++){

for (b = 1; b <= 5; b++){

for (c = 1; c <= 5; c++){

for (d = 1; d <= 5; d++){

for (e = 1; e <= 5; e++){

if (((a == 3) + (b == 2)) == 1 && \

((b == 2) + (e == 4)) == 1 && \

((c == 1) + (d == 2)) == 1 && \

((c == 5) + (d == 3)) == 1 && \

((e == 4) + (a == 1)) == 1)

{

int flag = 0;

flag = flag|(1 << (a - 1));

flag = flag|(1 << (b - 1));

flag = flag|(1 << (c - 1));

flag = flag|(1 << (d - 1));

flag = flag|(1 << (e - 1));

while (flag)//比特位存在1,跳出这个循环有两种情况,\

一种是1之间夹着0,一种是比特位全部向右移动完遇到0退出循环

{

if (!(flag & 1))//

{

break;//排除是110等最低位为0的情况,

}

flag >>= 1;//最低位不是0就向后移一位再检查最低位是不是0

}

if (flag == 0)//满足flag==0说明比特位正常移动完毕,比如00111,\

这是个可以的结果,flag>>1执行三次之后最低位遇到0,跳出 \

while(flag)的循环,到了这里后flag为00000,flag==0,满足条件,\

输出正确结果

{

printf("final result: a=%d,b=%d,c=%d,d=%d,e=%d\n", \

a, b, c, d, e);

}

}

}

}

}

}

}

system("pause");

return 0;

}

正确结果:

99087edac10424f54c7175486f381a93.png

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

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

相关文章

发现一个国产BI软件,做财务数据分析效果绝了

如果是一般的财务数据分析&#xff0c;BI软件们都能做&#xff0c;但如果真要深入了解财务痛点&#xff0c;逐个击破财务数据分析难点&#xff0c;实现多维立体自助式的财务数据分析&#xff0c;那就难。就目前而言&#xff0c;财务数据分析做得好的国产BI软件也就一个奥威BI软…

研究了上市公司的报表后,我总结出了最快制作经营分析报表的方法

有哪些成熟的企业内部经营报表模板可以借鉴&#xff1f; 这应该是很多企业或者个人的困扰&#xff0c;然而实际现状却是内部经营报表一般都是保密的&#xff0c;一般人是不会分享的。但在总结了上市公司的经营报表后&#xff0c;帆软君总结了以下2种方式&#xff0c;小伙伴在做…

A股信息披露质量KV指数上市公司研发支出

1、数据来源&#xff1a;国泰安数据库、人工计算 2、时间跨度&#xff1a;2000-2020年&#xff08;门类不同时间范围有差异&#xff09; 3、区域范围&#xff1a;企业数据 4、指标说明&#xff1a; KV指数反映的是市场信息&#xff0c;相当于是投资者关于信息不对称程度的…

上市公司财务报表分析——以中国联通为例

中文题目&#xff1a; 上市公司财务报表分析——以中国联通为例 英文题目&#xff1a;An Analysis of the Financial Statements of the Listed Company ——A case study of China Union 数据论文下载地址&#xff1a;下载地址 目录&#xff1a; 一、 公司概况 1 二、 财务…

用vba创建图表分析上市公司财报

表格界面&#xff0c;填写股票代码后点击“下载报表”。 即下载财报到f盘&#xff0c;&#xff08;此处需手动先打开下载好的文件&#xff09;选择好要分析的科目&#xff0c;然后贴数据到主页面并生成折线图&#xff0c;可手动挪动图表行改分析的科目&#xff0c;嘻嘻。 以下…

网络财务分析——如何下载一家上市公司的财务报告(绝对权威)

网络财务分析——如何下载一家上市公司的财务报告(绝对权威) 网络财务分析——如何下载一家上市公司的财务报告(绝对权威) 途径一 证券交易所的相关网站 方法一&#xff1a;上海证券交易所 1&#xff0e; 首先输入网址http://www.sse.com.cn/sseportal/ps/zhs/home.shtml &am…

RPA-机器人流程自动化

RPA-机器人流程自动化 RPA-机器人流程自动化简介RPA是什么&#xff1f;RPA历史上的演变RPA原理RPA特点RPA技术框架及功能1.TagUI2.RPA for Python3.Robot Framework4.Automagica5.Taskt6.OpenRPA RPA部署模式1 环境配置的参数调整2 将自动化程序整体打包部署3 版本的管理和控制…

mplfinance 一个堪称完美python量化金融可视化工具详析

文章目录 1.mplfinance安装2.获取数据&#xff08;从tushare接口&#xff09;3. 获取数据&#xff08;从本地csv&#xff09;4. mplfinance可视化5. 自定义风格样式6. 添加其他线条 1.mplfinance安装 使用清华源快速安装mplfinance库&#xff0c;执行以下命令即可&#xff1a;…

使用Yfinance和Plotly分析金融数据

大家好&#xff0c;今天我们用Python分析金融数据&#xff0c;使用Yfinance和Plotly绘制图表&#xff0c;带你了解在Python中使用Plotly制作图表&#xff0c;利用Plotly强大的图表功能来分析和可视化金融数据。 导语 在本文中&#xff0c;我们将深入研究Plotly&#xff0c;从…

分析师的嘴,骗人的鬼?年薪百万的券商分析师靠谱吗?Python量化大数据给你答案!| 邢不行

如果你有一定的交易经验&#xff0c;应该会或多或少看过券商分析师们推荐股票的信息。 甚至仅需49元/月&#xff0c;就能通过支付宝得知&#xff0c;被认为最优秀的新财富分析师们每天实时推荐的股票。 这些年薪百万的分析师们真的靠谱吗&#xff1f;本文我们就用大数据来验证…

网站用户活跃度统计服务器,活跃用户统计规则

1. 活跃用户 1.1. 基础说明 1.1.1. 指标定义 活跃用户指的是当前统计时间周期内启动过应用并浏览了页面的设备&#xff0c;MTA通过用户/程序在不同场景下是否上报日志作为活跃的判断标准。 注意&#xff1a;活跃用户默认只计算前台使用的用户为活跃用户&#xff0c;即上报页面日…

Q1手机银行运营报告:交易规模超150万亿,月活跃用户4.9亿

易观分析&#xff1a;由中国电子银行网、易观分析联合发布的“2022中国手机银行综合运营报告”显示&#xff1a;第一季度受活跃用户规模增长放缓、手机银行更新迭代较少等综合因素影响&#xff0c;其运营指数较上一季度有所下降&#xff0c;其中2月份的运营指数为77.3&#xff…

app数据分析体系 - 用户粘性 DAU,MAU 和 月人均活跃天数

用户粘性指标 DAU MAU 月均活跃天数 DAU 和 MAU 日活跃用户占月活跃用户的比例越高&#xff0c;表明用户对App的使用粘性越高。 DAU&#xff0c;即&#xff1a;Daily Active User&#xff0c;指日活跃用户数 MAU&#xff0c;即&#xff1a;Monthly Active User&#xff0c;指…

最近七天内连续三天活跃用户数

最近七天内连续三天活跃用户数 首先&#xff0c;感谢大华公司给的面试机会&#xff0c;非常感谢~&#xff01; 进入正题&#xff0c;建表&#xff1a; create table uv_detail_daycount( mid int )PARTITIONED BY(dt string);通过load将hdfs文件加载到hive中。 数据文件名如下…

数据统计之日活跃用户统计

日活跃用户统计 接口分析 请求方式&#xff1a;GET /meiduo_admin/statistical/day_active/ # 日活跃用户统计url(r^statistical/day_active/$, statistical.UserActiveCountView.as_view()), 请求参数&#xff1a; 通过请求头传递jwt token数据。 返回数据&#xff1a; J…

中创|没人比我更懂!马斯克发出警告:人类要小心人工智能

马斯克在过去十年对AI的态度一直非常鲜明&#xff0c;很早就对这个问题有深入地思考&#xff1a; 2014 “我们对AI要非常小心&#xff0c;这可能是我们最大的存在威胁。” 2016 “AI的未来发展方向可能并不乐观&#xff0c;起码不会所有结果都是好的。” 2017 “AI会比地…

被培训班割韭菜,还期待高薪入场,哥们醒醒

刚毕业&#xff0c;两眼一抹黑&#xff0c;觉得前端高薪便急忙入场&#xff0c;可能一开始这条路就是错的。 1. 就在今天早晨07:53&#xff0c;有人要添加我的微信好友。现在基本上有人加我微信&#xff0c;我都是秒通过的&#xff0c;因为绝大部分加我wx的&#xff0c;都是从我…

如何看待培训机构出来的非科班程序员

看着身边的同学和朋友的情况&#xff0c;有感而发&#xff0c;打算从各方面角度说一说这件事。 近几年&#xff0c;互联网创业潮让IT技术人员的需求大大增加&#xff0c;各类IT培训机构风生水起&#xff0c;办得如火如荼。大多培训机构都是以保底工资nk&#xff0c;年薪轻松上…

腾讯XR,为什么凉了

深燃&#xff08;shenrancaijing&#xff09;原创 作者 | 李秋涵 编辑 | 魏佳 大厂的业务线&#xff0c;从成立到部分解散能有多快&#xff1f; 最近有一个新答案是&#xff0c;8个月。 2月16日下午&#xff0c;腾讯XR&#xff08;扩展现实&#xff09;业务线员工李钢铁还是先通…

两个offer:一个996,月薪3万;一个885,月薪2万,怎么选?

转载自&#xff1a;架构师社区 找工作时&#xff0c;钱和闲&#xff0c;你选哪个&#xff1f; 一位网友拿到了两个offer&#xff0c;一个996&#xff0c;月薪3万&#xff0c;一个885&#xff0c;月薪2万&#xff0c;怎么选&#xff1f; 一部分网友选择885&#xff0c;因为自己是…