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

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

微信图片_20230427160703.gif

😎博客昵称:博客小梦

😊最喜欢的座右铭:全神贯注的上吧!!!

😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘


微信图片_20230427160707.gif


前言🙌



    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言每日一题】——猜名次~ 将现实中的生活问题转化为代码讲述,非常有意思的一到题目~ 都是精华内容,可不要错过哟!!!😍😍😍


猜名次🙌


猜名次

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

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

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

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

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

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

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


解题思路分享:😍


这是一道和十分有意思的题目。考虑到一共五个人,直接模拟推理有些太难,可以利用遍历所有可能性来解决。

将每个人从第1到第5来一遍,则一共会产生5^5种可能性,这个只需要一个5层循环即可搞定。

多看几遍五个人描述的话语和题目所给的提示。并用代码写出相应的 if ()中的判断语句 。

但是这样会导致一些不期望出现的结果出现,但是会出现两个人或者更多的人名次相同的情况,例如两个第1,三个第2这样的,所以即使满足了条件,也要查看一下五个人的名次是否重复。 所以在if的判断条件中将这些进行一个把控,将重复的情况进行一个筛选控制即可。


解题源码分享:😍


#include<stdio.h>
int main()
{
    int a = 0, b = 0, c = 0, d = 0, e = 0;
    for (int i = 1; i < 5; i++)
    {
        a = i;
        for (int j = 1; j <= 5; j++)
        {
            b = j;
            for (int k = 1; k <= 5; k++)
            {
                c = k;
                for (int l = 1; l <= 5; l++)
                {
                    d = l;
                    for (int m = 1; m <= 5; m++)
                    {
                        e = m;
                        if ((b == 2 || a == 3) &&( b == 2 || e == 4) && (c == 1 || d == 2 )&&
                            (c == 5 || d == 3 )&&( e == 4 || a == 1) && (a != b) && (a != c)&& (a != d) && (a != e )
                            &&( b != c) &&( b != d ) && (b != e) && (c!= d)&& (c != e )&& (d != e))
                        {
                            printf("a = %d,b = %d,c = %d. d = %d,e = %d\n",a,b,c,d,e);
                        }
                    }
                }
            }
        }
    }
    return 0;
}


程序输出结果验证: 😊


微信图片_20230427170441.png


然后我通过程序运行的结果和题目内容对比后,是符合题目要求的答案。 😍


总结撒花💞


本篇文章旨在分享C语言详解【C语言每日一题】——猜名次。希望大家通过阅读此文有所收获!但是我觉得我实现的这个算法的效率有点低,要用到五层循环,各位聪明的uu们有没有更高效的解题算法呢?有的话可以私信笨笨的小梦😊,教教俺!!!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘


相关文章
|
C语言
用C语言解决实际问题之买汽水、猜凶手(名次)
用C语言解决实际问题之买汽水、猜凶手(名次)
88 0
|
C语言
【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】
【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】
187 0
|
存储 算法 C语言
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
77 0
|
C语言
【C语言练习】求名次、找凶手
【C语言练习】求名次、找凶手
79 0
|
C语言
C语言:猜名次
题目: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三;
|
C语言
C语言解决逻辑分析题(猜凶手)(猜名次)
C语言解决逻辑分析题(猜凶手)(猜名次)
|
C语言
【C语言每日一题】猜名次
【C语言每日一题】猜名次
106 0
|
C语言
C语言经典问题—猜名次、猜凶手和杨辉三角
C语言经典问题—猜名次、猜凶手和杨辉三角
69 0
|
C语言 C++
C语言练习之猜名次-----A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;
C语言练习之猜名次-----A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;