首页 >> 大全

C语言好题分享四(自认为)

2023-11-15 大全 19 作者:考证青年

不知道各位兄弟们有没有看过盗梦空间呢?

“This world is not real.”

这一句话很多粉丝都听说过吧,今天要分享的这道题目我只能说:“This is not real.”

怎么样,是不是激起了你的小小的好奇心呢?

哈哈,其实也没有那么夸张啦,博主只是觉得这道题很坑爹就是了,那么废话不多说,我们就来看看这道盗脑的题目吧!

#include
int main()
{
int k = 5, n = 0;
do {
switch (k)
{
case 1:
case 3:
n += 1;
k--;
break;
default:
n = 0;
k--;
case 2:
case 4:
n += 2;
k--;
break;
}
printf("%d", n);
} while (k > 0 && n < 5);
return 0;
}

怎么样,是不是感到绝望了? “沃日,这**题目也太***难看了吧!”没关系,你不是唯一一个这么想的

,起码博主就是这么想的(其实为了达到这种效果,博主还特意把网站自动缩进的空格给删了)。

这种题目其实很多人都看不下去吧?要是我们在以后写出这种代码,hh,工作大概就要不保了吧,那么在讲解题目之前,我们自己在写代码的时候就要注意到的问题之一就是代码的风格,在这里我给大家推荐一本书《高质量c/c++编程指南》(非传销,这本书原本就是是开源的,如果网上找不到的话可以到博主主页的资源里去看哦!)

那我们把缩进加上再看一看这段代码:

#include
int main()
{int k = 5, n = 0;do {switch (k){case 1:case 3:n += 1;k--;break;default:n = 0;k--;case 2:case 4:n += 2;k--;break;}printf("%d", n);} while (k > 0 && n < 5);return 0;
}

怎么说,是不是一下子就感觉清爽了很多,逻辑性也强了很多。诶,抱歉这时候要泼一盆冷水了铁汁们,就算是如此明确的代码也不一定可以做对哦~,不信?来看看兄弟们的答案是多少(¬◡¬)✧

————— 我只是个分界线•﹏• —————

————— 我只是个分界线(´・_・`) —————

铁汁们算到了吗?

那现在我们先分析一下代码看看思路对不对得上:

首先我们先进入do while循环,此时k = 5,从上往下走走到循环里面,k--使得k = 4,满足循环条件,然后开始下一回合的循环 ...... 对吗? 对吗兄弟们?诶,此刻会有细心的佬儿发现控制的语句里面没有break来跳出函数,那么就是说当代码继续往下走的时候,他会进入到case 4 的语句里面当我们进入到 case 4里面,此时算的k = 3,n= 2,在屏幕上打印 2然后走到case 3里面得到 k = 2,n = 3,break跳出循环,在屏幕上打印 3再接着我们走到case 2 里面,哎,此时又出现问题了,我们发现case 2 里面没有语句啊!但如果不执行语句的话, k 和 n 就不会变,代码不就死循环了吗? 那么经过我们聪明的大脑以及合理的推理,我们此刻可以吧 case 2 看成是控制 case 4 的条件,即执行 case 4里的语句,得到 k = 1,n = 5,break跳出循环在屏幕上打印5最后 n = 5不满足循环的条件,结束代码

经过一大段的分析,我们计算得答案为235 ,咋说,xdm对了吗? 不对也没关系,毕竟不是考试或竞赛嘛,哈哈。但通过这道题目我们要有所收获:

变量的中途变卦可能会导致结果的不同,而合理的推断(猜测)则是前进的盾牌

铁汁们懂了吗?

You can be angry about the of fate,but the low,not the to stay in place ---你可以批判命运的不公,但出身的贫贱并不是你止步的理由

那么本篇博客也就到此为止了,送大家一碗鸡汤,勉励自己以及这世界上所有追逐梦想的赤子趁年华尚好努力提升自己,莫欺少年穷!

tags: c语言

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了