大家好,我是c语言boom家宝,今天给大家带来的是一个非常有意思的东西,也是培养初学者的编程思维,利用所学的编程语言去解决生活中的一些小问题。现在请看题目:
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
不知道小伙伴们看到这道题有没有什么思路,博主呢这里就简单分享一下自己的思路,希望能启迪到那些接触编程没有多久的同学尽快把编程融入生活,培养编程思维。
根据题目,一共有五位选手,所以我们先定义5个变量,分别赋初值为0;
然后将每个人从第1到第5来一遍,则一共会产生5^5种可能性,这个只需要一个5层循环即可搞定。
题目说每一位选手说的话都有一半是对的,那我们怎么分别定义他说的真话和假话呢。其实很自然的就应该想到计算机中也有判断真假,那就是0为假和非0正整数为真,当然一半默认是1为真。所以每一位选手说的话,有一句假话,值就是0;又有一句真话,值为1。这两句话加在一起的值就是1。然后因为我们是把他放在不停地遍历当中,最后就能达到我们预测比赛结果的效果,代码如下:
来看看编译结果
:
我们能看到计算机给出了好多答案,这是因为我们没有考虑到会有名次相同的情况,针对这个问题,我们可以加一个if语句判断,例如让a不等于b且b不等于c......。也可以简单一点,如果名次不一样,那就是依次为1、2、3、4、5名次,乘机就为1*2*3*4*5=120。代码如下:
这样我们就能实现目标啦!小伙伴们可以先不用电脑帮忙计算答案,自己通过聪明的大脑分析分析上面的题目,来验证一下电脑有没有做对哈哈哈哈。