当前位置: 首页 > news >正文

C语言不可不敲系列:跳水比赛排名问题

目录

1题干:

2解题思路:

3代码:

4运行结果:

5总结:


1题干:

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

2解题思路:

首先我们不知道名次问题,这时候我们就可以利用循环来做题,也就是利用穷举法来一个一个的尝试,把所有结果都尝试一遍就能找到满足题干条件的答案.

这个题我们可以对A,B,C,D,D都进行循环穷举,e的话可以用总名次(第一名+第二名+第三名+第四名+第五名等于15)去减去A,B,C,D的名次就可以知道E的名次,这个可以大大减少循环量.废话不多说,直接展示代码及其运行的结果.

3代码:

#include<stdio.h>
int main()
{int a,b,c,d,e;//定义5个人 for(a=1;a<=5;a++)//因为不确定5人的名次,所以要穷举法(循环),一个一个的尝试 {for(b=1;b<=5;b++){if(a==b) continue;//名次问题只能是一个人占一个位置,所以他们不可能相等 for(c=1;c<=5;c++){if(a==c||b==c) continue;//同理如上 for(d=1;d<=5;d++){if(a==d||b==d||c==d) continue;//同理如上 e=15-a-b-c-d;//这里可以用做减法来判断e的名次减少一层循环,15是因为1到5名相加的结果 if(a!=e&&b!=e&&c!=e&&d!=e)//同理如上 if(1==(b==2)+(a==3)&&(b==2)+(e==4)==1&&(c==1)+(d==2)==1&&(c==5)+(d==3)==1&&1==(e==4)+(a==1))//题干说每人说的话只对一般 printf("a是第%d名\nb是第%d名\nc是第%d名\nd是第%d名\ne是第%d名",a,b,c,d,e);//所以用关系判断句的结果来表示 }}}}return 0;
}

拆解分析:

<1>:首先对5人进行定义并开始循环,此时如果a==b就排除这种情况,因为名次问题一人只能占一个名次,一个名次也只能占一个人.

#include<stdio.h>
int main()
{int a,b,c,d,e;//定义5个人 for(a=1;a<=5;a++)//因为不确定5人的名次,所以要穷举法(循环),一个一个的尝试 {for(b=1;b<=5;b++){if(a==b) continue;//名次问题只能是一个人占一个位置,所以他们不可能相等 

<2>接着往下进行循环.

	        for(c=1;c<=5;c++){if(a==c||b==c) continue;//同理如上 for(d=1;d<=5;d++){if(a==d||b==d||c==d) continue;//同理如上 e=15-a-b-c-d;//这里可以用做减法来判断e的名次减少一层循环,15是因为1到5名相加的结果 

<3>这里是对题干条件的判断,利用关系表达式,因为题干说每人说的两句话只对一半,所以利用判断语句并令其==1即可.

					if(a!=e&&b!=e&&c!=e&&d!=e)//同理如上 if(1==(b==2)+(a==3)&&(b==2)+(e==4)==1&&(c==1)+(d==2)==1&&(c==5)+(d==3)==1&&1==(e==4)+(a==1))//题干说每人说的话只对一般 printf("a是第%d名\nb是第%d名\nc是第%d名\nd是第%d名\ne是第%d名",a,b,c,d,e);//所以用关系判断句的结果来表示 
4运行结果:

5总结:

人贵有恒,坚持练习一定有所进步.

若想练习C语言的习题,可以去我主页逛一逛,比如说:

【c趣编程】输入一个整数,判断其有几位-CSDN博客

感谢各位的阅读,以上就是“C语言怎么解决跳水比赛排名问题”的内容了,经过本文的学习后,相信大家对C语言这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是CSDN杰克尼,小编将为大家推送更多相关知识点的文章,欢迎关注!

http://www.lryc.cn/news/231062.html

相关文章:

  • Python与ArcGIS系列(二)获取地图文档
  • Ansible自动化部署工具-role模式安装filebeat实际案例分析
  • B2B企业如何打造独立站:从策略到实施的全面指南
  • JAVA 中集合取交集
  • Android13 Launcher3 定制
  • 其他word转化为PDF的方式
  • 【Axure】axure rp 导入元件库和使用,主流元件库下载使用
  • ISP 处理流程
  • 【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析C
  • 百望云斩获“新华信用金兰杯”ESG优秀案例 全面赋能企业绿色数字化
  • bclinux aarch64 ceph 14.2.10 对象存储 http网关 CEPH OBJECT GATEWAY Civetweb
  • 2023年亚太杯数学建模思路 - 复盘:人力资源安排的最优化模型
  • 【广州华锐互动】VR居家防火逃生模拟演练增强训练的真实性
  • PaddleClas学习1——使用PPLCNet模型对车辆属性进行识别(python)
  • CSS 实现新拟态(Neumorphism) UI 风格
  • js 深度学习(六)
  • 【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
  • React hooks(一):useState
  • springboot集成swagger3+解决页面无法访问问题
  • mapreduce-maven--30.串联所有单词的字串
  • Hive使用max case when over partition by 实现单个窗口取两个窗口的值(单个开窗函数,实际取两个窗口)
  • 2023年【北京市安全员-B证】试题及解析及北京市安全员-B证证考试
  • 二维码智慧门牌管理系统升级解决方案:流量监控引领服务卓越
  • Linux内核面试题(1)
  • wpr -start generalprofile -start pool -filemode 这句命令具体是什么意思
  • C/CPP基础练习题多维数组,矩阵转置,杨辉三角详解
  • 父组件用ref获取子组件数据
  • Haskell添加HTTP爬虫ip编写的爬虫程序
  • MySQL 社区开源备份工具 Xtrabackup 详解
  • 【仿真】ruckig在线轨迹生成器示例