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

【C语言每日一题】猜名次

【C语言每日一题】—— 猜名次😎😎😎

💡前言🌞:

💛猜名次题目💛 

 💪 解题思路的分享💪

😊题目源码的分享😊

👉 本菜鸡&总结 👈

追梦之旅,你我同行

😎博客昵称:陈大大陈

😊座右铭:所谓觉悟,就是在漆黑的荒野上开辟出一条理当前进的光明大道。

😋博主简介:一名热爱C/C++和算法等技术,喜欢运动,爱胡思乱想却胸怀大志的小博主

😚博主&唠嗑:早中晚安!😄各位CSDN的朋友!😄我是博客新人陈大大陈,希望我的文章能为你带来帮助!欢迎大家在评论区畅所欲言!也希望大家多多为我提出您宝贵的建议!😘如果觉得我写的不错的话还请点个赞和关注哦~😘😘😘

💡前言🌞:

大伙们好!😄又到了小陈每日一题的时间了~ 😋😋😋今天也带来了十分有趣的题目!🥰🥰🥰用C语言实现——猜名次~这个题目很有意思,新颖的同时又很值得思考!我现在迫不及待地要和大家分享~!😄🤗🤗

💛猜名次题目💛 

💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡

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

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

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

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

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

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

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


 💪 解题思路的分享💪

  • 考虑到一共五个人,直接模拟推理有些太难,计算机最擅长的遍历此时就会派上用场,将每个人从第1到第5来一遍,则一共会产生5^5种可能性
  • 我们只需要写出一个五重的循环就能搞定它,对于这道题目而言,循环可以轻易地遍历所有结果。
  • 仔细阅读题目,将五人的话分别化为条件项写在 if() 语句中,即可写出代码。
  • 但是我们这样单纯的循环并不能够完美地解决问题,可能会出现重复的情况,即出现了两个第二名,或者3个第四名这样的情况。
  • 为了避免出现这样的情况,我们要加入条件语句来筛选,查看在满足条件的情况下名次是否重复,用if语句来将重复的情况筛选掉即可。

😊题目源码的分享😊

#include <stdio.h>int checkData(int *p)
{int tmp[7] = { 0 }; int i;for (i = 0; i < 5; i++){if (tmp[p[i]]) //如果这个位置的标记已经是1,则代表重复,返回0。{return 0;}tmp[p[i]] = 1; //如果不是,则将这个位置标记为1。}return 1; //如果全部标记完毕也没有出现重复的情况,代表OK。
}int main()
{int p[5]; //0 1 2 3 4分别代表a b c d efor (p[0] = 1; p[0] <= 5; p[0]++){for (p[1] = 1; p[1] <= 5; p[1]++){for (p[2] = 1; p[2] <= 5; p[2]++){for (p[3] = 1; p[3] <= 5; p[3]++){for (p[4] = 1; p[4] <= 5; p[4]++) //五层循环遍历{//这是五个人的描述,比较表达式只有0和1两个结果,如果要两个条件有且只有一个为真,则可以用比较表达式的值总和为1的方式直接判定。别忘了还要判定不能并列。if ((p[1] == 2) + (p[0] == 3) == 1 && //B第二,我第三(p[1] == 2) + (p[4] == 4) == 1 && //我第二,E第四(p[2] == 1) + (p[3] == 2) == 1 && //我第一,D第二(p[2] == 5) + (p[3] == 3) == 1 && //C最后,我第三(p[4] == 4) + (p[0] == 1) == 1 && //我第四,A第一checkData(p) //不能并列){for (int i = 0; i < 5; i++){printf("%d ", p[i]);}printf('\n');}}}}}}return 0;
}

👉 本菜鸡&总结 👈

本篇文章旨在分享C语言详解【C语言每日一题】——猜名次。🤠希望我的文章能够让大家有所收获!🙋‍♂️我的方法只是很暴力的五重循环,效率很低,如果有路过的大佬看到的话,还请不吝赐教!😀😀😀大佬们如果对我的文章有什么建议,或者认为那里写的不好,请在评论区写下您宝贵的意见!😀如果觉得我写的不错的话还请点个赞和关注哦~我会持续输出编程的知识的!🌞🌞🌞

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

相关文章:

  • 89. 格雷编码
  • 线性回归算法和逻辑斯谛回归算法详细介绍及其原理详解
  • 【网络原理8】HTTP请求篇
  • Playbook的用法
  • APP优化 —— MMAP内存映射
  • paddle.vision 与 torchvision 中的box NMS使用方式
  • php mysql校园帮忙领取快递平台
  • C/C++开发,无可避免的内存管理(篇二)-约束好跳脱的内存
  • 【Java】让我们对多态有深入的了解(九)
  • 12 个适合做外包项目的开源后台管理系统
  • 鼠标更换指针图案和更改typora的主题
  • 【洛谷 P1563】[NOIP2016 提高组] 玩具谜题(模拟+结构体数组+指针)
  • 阿里测试经验7年,从功能测试到自动化测试,我整理的超全学习指南
  • Educational Codeforces Round 143 (Rated for Div. 2)
  • 业务代码编写过程中如何「优雅的」配置隔离
  • English Learning - L2-2 英音地道语音语调 2023.02.23 周四
  • java:线程等待与唤醒 - Object的wait()和notify()
  • 实现弹窗功能并修改其中一个系数
  • vue-draggable浏览器拖拽event事件对象拖动时 DragEvent path undefined
  • 【云原生】搭建k8s高可用集群—20230225
  • LeetCode121_121. 买卖股票的最佳时机
  • 收割不易,五面Alibaba终拿Java岗offer
  • 【离线数仓-4-数据仓库设计-分层规划构建流程】
  • SQL零基础入门学习(十一)
  • 排序基础之插入排序
  • LabVIEW控制DO通道输出一个精确定时的数字波形
  • openpnp - 零碎记录
  • Qt编写微信支付宝支付
  • LeetCode 剑指 Offer 64. 求1+2+…+n
  • Mapper代理开发