![](https://img-blog.csdnimg.cn/direct/83e977e999954067beee02c00e073d52.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
啊哈c语言
基于“【啊哈c语言】逻辑的挑战(修订版)”与其书籍逐步练习的过程。
白金NPC
我思,故我在
展开
-
啊哈c语言——逻辑挑战14(一个萝卜一个坑)
第2个人去拔5号萝卜,第3个人再去拔2号萝卜(其实此时2号萝卜已经被拔走了),第4个人去拔1号萝卜,第5个人去拔8号萝卜,最后剩下的萝卜的就是答案了。看一下最后a[0]~a[9]这10个小房间中的数,你会惊奇地发现:出现过的数,它们所对应的小房间中的值都为1;我们将 0~9中的每个数都用单独1个房间来表示,每出现一个数,就将所对应的房间中的值改为1,最后只要看看哪些房间里面的值仍然是0就好了。其中1出现1次,2出现2次,5出现1次,8出现1次。下一个出现的数又是2,我们再将a[2]中的值加1。原创 2024-01-23 20:12:36 · 1007 阅读 · 0 评论 -
啊哈c语言——逻辑的挑战13:陶陶摘苹果
要注意的是,我们在定义数组a的时候,写的是int a[10],虽然申请了10个空间,但是数组是从0开始计数的,所以是a[0]~a[9]。第1行包含10个100~200之间(包括100和 200)的整数(以cm为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用1个空格隔开。如果苹果的高度原创 2024-01-10 17:17:30 · 809 阅读 · 0 评论 -
啊哈c语言——逻辑挑战12:你好坏,关机啦
上面语句中的“shutdown”就是表示令计算机关机或者重新启动的命令,“-s”表示关机,“-r”表示重新启动,待会儿你可以试一试将“-s”用“- r”代替。“-t 50”表示的是在50秒后关机。“-t”和“50”之间有一个空格。如果你在6次之内猜出来了, 就显示“恭喜你,答对了!如果没有猜出来就显示“没有机会了,系统将在50秒后关机!本节我们将学着写一个恶作剧程序——将别人的计算机关机的程序。只要别人一运行你的程序,他的计算机就会立即关机。怎么样,是不是启动关机程序了,如图5-3所示。原创 2024-01-09 18:32:59 · 666 阅读 · 0 评论 -
啊哈c语言——5.9逻辑挑战11(猜数游戏)
c语言猜数游戏原创 2024-01-08 15:06:16 · 573 阅读 · 0 评论 -
啊哈c语言——5.8逻辑挑战10(解决奥数难题)
我们的计算机最擅长的就是“不厌其烦”地重复做同一件事情,而且运行速度还非常快,即使你现在用的是市面上最坏最坏的计算机,它1秒钟仍然可以计算100 000 000次以上。我们只需写一个循环,让变量i从1到9循环就好了,然后每次循环只需判断一下当前的i是否符合这个等式的条件,如果符合就输出其值。例如,如图5-2所示的三角形中,三条边的值之和分别为:5+3+4、4+2+6、5+1+6,都等于12。在上面的算式中,A、B、C、D、E分别代表5个互不相同的整数, 请问A、B、C、D、E分别为多少时算式才会成立?原创 2024-01-07 14:29:25 · 621 阅读 · 0 评论 -
啊哈c语言——逻辑挑战9:水仙花数
在上面的代码中,我们用for循环i来表示这个三位数的百位(从1循 环到9),用for循环j来表示这个三位数的十位(从0循环到9),用for循 环k来表示这个三位数的个位(从0循环到9)。然后用百位上的数乘以100加上十位上的数乘以10再加上个位上的数就组成了这个三位数,即 i×100+j×10+k。例如: 153=1×1×1+5×5×5+3×3×3,我们为这种特殊的三位数起了一个很好听的名字——“水仙花数”,那么请你找出所有的“水仙花数”吧。来分析一下,既然这个数是三位数,那么必然是100~999中的数。原创 2024-01-06 22:12:44 · 1522 阅读 · 0 评论 -
啊哈c语言——逻辑挑战8:验证哥德巴赫猜想
上面这封书信是普鲁士数学家哥德巴赫在1742年6月7日写给瑞士数学家欧拉的,哥德巴赫在书信中提出了“任一大于2的整数都可以写成3个质数之和”的猜想。1742年6月30日欧拉在回信中注明,此猜想可以有另一个等价的版本,即“任一大于2的偶数都可写成 两个质数之和”。如果a 和b都是质数的话我们就将其打印出来,说明对于数k我们验证成功了,然后继续验证下一个数。当然,去验证哥德巴赫猜想有很多种方法,显然这种方法是不够好的,判断质数的部分也不够快,这里只是提供一种思路,我想你一定可以找到更高效的方法。原创 2024-01-05 19:50:13 · 501 阅读 · 0 评论 -
啊哈c语言——逻辑挑战7:奔跑的小人
如果这个数只能被1和它本身整除, 即只有1和它本 • • • • • • • 身两个约数,除此之外再没有其他约数 • • • • • • • • • • • • • • • • • ,那么这个数就是质数。反之,如果最终count的值不为0,就说明之前的3个if判断中肯定有某个 (或者某几个)是成立的,2、3、4中有a的约数,a是合数。好了,剩下的就简单了。假如要判断5是否为质数,只 要5除以2的余数不为0, 5除以3的余数不为0,且5除以4的余数也不为0的 话,就说明5为质数,否则5就是合数。原创 2024-01-03 16:30:29 · 992 阅读 · 0 评论 -
啊哈c语言——逻辑挑战6:奔跑的小人
分析后我们发现,让小人往右移动主要通过在小人的左边不停地打印空格来实现。但是我们只在第1行的左边打印了空格,在第2行和第3 行都没有打印空格的语句。如果希望小人跑得更远,我们只需把while(a原创 2024-01-01 17:42:07 · 451 阅读 · 0 评论 -
啊哈c语言——逻辑挑战5:奔跑的字母
首先我们想一下,如果希望一个字母(假设这个字母是H)从屏幕的左边往右边跑,即第一秒时字母H在屏幕的第一行的最左边(也就是第一行第一列),第二秒时字母H在屏幕第一行的第二列,第三秒时字母H在屏幕第一行的第三列,以此类推,该怎么实现呢?需要解决的是,在循环第1次时H在第一列,即H前面有 0个空格;我们仔细分析一下上面这段代码,有3个部分基本上相同,只有 printf语句中字母H前面的“空格”的个数不同,在第1部分字母H前面有0 个空格,在第2部分字母H前面有1个空格,在第3部分字母H前面有2个空格。原创 2024-01-01 15:21:07 · 417 阅读 · 0 评论 -
啊哈c语言——4.10(练习)
2.请尝试用for循环来打印一个九九乘法表。1.请尝试用for循环打印下面的图形。原创 2023-12-31 16:57:21 · 612 阅读 · 0 评论 -
啊哈c语言——4.10、for隆重登场(一起来找茬)
下面这段代码是求1×2×3×4×5×6×7×8×9×10的值。其中有4个错误, 快来改正吧!原创 2023-12-31 15:01:32 · 360 阅读 · 0 评论 -
啊哈c语言——4.8究竟循环了多少次(提问)
请问下面这段代码会打印多少个“OK”?更进一步,动手试一试。原创 2023-12-31 14:32:15 · 347 阅读 · 0 评论 -
啊哈c语言——4.6循环嵌套来了(练习)
1.请尝试用while循环打印下面的图形。2.请尝试用while循环打印下面的图形。还未解出:有会的大神可以提点一下。原创 2023-12-30 21:42:36 · 461 阅读 · 0 评论 -
啊哈c语言——4.5逻辑挑战4(60秒倒计时)
我们仔细分析一下上面这段代码,就会 发现它由4个小部分组成(在代码中已经用空行隔开),这4个小部分, 除了printf( )语句中的数字不一样之外,其余都是一样的,而且数字 也是有规律的,即从3到0。但是计算机一下子就显示了3210,丝毫没有倒计时的感觉,我们希 望计算机先打印3,1秒后打印2,再过1秒打印1,再过1秒打印0。如果要 实现每过1秒打印一个数,我们就需要用到“等待”这个语句,这个语句 就是Sleep( ),注意第一个字母S是大写,例如,Sleep(1000)就表 示等待1秒。原创 2023-12-29 15:52:03 · 411 阅读 · 1 评论 -
啊哈c语言——4.4求和(一起来找茬)
下面这段代码是求1×2×3×4×5×6×7×8×9×10的值。其中有3个错误, 快来改正吧!原创 2023-12-28 17:25:53 · 482 阅读 · 1 评论 -
啊哈c语言——4.2(一起来找茬)
下面这段代码是让计算机从100打印到200。其中有3个错误,快来改正吧!原创 2023-12-28 16:11:58 · 381 阅读 · 1 评论 -
啊哈c语言——4.1(一起来找茬)
下面这段代码是让计算机“永无止境”地打印hello。其中有两个错 误,快来改正吧!原创 2023-12-28 13:26:13 · 379 阅读 · 1 评论 -
啊哈c语言——3.7逻辑挑战3;我要排序(一起来找茬)
下面程序的功能是从键盘读入1个整数,如果这个数是奇数就输出 这个数后面的3个数,如果这个数是偶数,就输出这个数前面的3个数。例如,如果输入的整数是5,就输出678;如果输入的整数是4,就输出 321。其中有两个错误,快来改正吧。原创 2023-12-27 20:32:21 · 353 阅读 · 1 评论 -
啊哈c语言——3.7逻辑挑战3:我要排序
首先,我们先将小房子a中的数与小房子b中的数做比较,如果小房 子a中的数小于小房子b中的数,则将小房子a和小房子b中的数交换。如果小房子a中 的数小于小房子c中的数,则将小房子a和小房子c中的数交换。经过将小房子a中的数分别与小房子b、小房子c中的数进行比较和 交换,我们可以确定小房子a中存储的数一定是3个数中最大的。经过3轮比较,我们终于排序完毕,并将最大的数放在小房子a中, 次大的数放在小房子b中,最小的数放在小房子c中。下面继续比较小房子b和小房子c中的值,将较大的值放在小房子b中。原创 2023-12-27 16:11:40 · 1028 阅读 · 1 评论 -
啊哈c语言——3.6逻辑挑战2(一起来找茬)
下面这个程序的功能是从键盘读入一个整数,判断这个数是否为7 的倍数或者为末尾含7的数,例如:7、14、17、21、27、28……如果是 则输出yes,不是则输出no。其中有5个错误,快来改正吧。原创 2023-12-27 15:34:24 · 400 阅读 · 1 评论 -
啊哈c语言——3.5请告诉我谁大(一起来找茬)
下面程序的功能是从键盘读入两个整数,判断它们是否相等,如果 相等则输出yes,不相等则输出no。其中有6个错误,快来改正吧!原创 2023-12-26 20:05:55 · 443 阅读 · 1 评论 -
啊哈c语言——3.4神器else(一起来找茬)
下面这段代码用来判断一个数的末尾是否为7,例如:7、17、 127……如果是则打印yes,不是则打印no。其中有6个错误,快来改正吧。原创 2023-12-26 19:51:40 · 393 阅读 · 1 评论 -
啊哈c语言——3.3偶数判断(一起来找茬)
一起来找茬 下面这段代码用来判断一个数是否是7的倍数。其中有4个错误,快来改正吧!原创 2023-12-26 19:24:51 · 423 阅读 · 1 评论 -
啊哈c语言——3.2判断正数(一起来找茬)
下面这段代码用来判断一个数是否小于或等于100,如果是则输出 yes。其中有3个错误,快来改正吧!原创 2023-12-25 21:15:39 · 375 阅读 · 0 评论 -
啊哈c语言——2.10交换小房子中的数(逻辑挑战1:一起来找茬)
一起来找茬 下面这段代码是让计算机读入两个整数,分别放到变量a和变量b 中,并将变量a和变量b中的数交换。其中有两个错误,快来改正吧!原创 2023-12-25 20:27:22 · 318 阅读 · 0 评论 -
啊哈c语言——2.8究竟有多少种小房子(一起来找茬)
下面这段代码是让计算机读入一个字符并把这个字符原样输出。其中有3个错误,快来改正吧!原创 2023-12-25 20:15:34 · 341 阅读 · 0 评论 -
啊哈c语言——2.7数据输入(一起来找茬)
啊哈c语言——数据输入(一起来找茬)下面这段代码是从键盘读入两个整数,并输出它们的和。其中有6 个错误,快来改正吧!原创 2023-12-25 16:06:11 · 367 阅读 · 0 评论 -
啊哈c语言——2.6数据输出(一起来找茬)
下面这段代码是让计算机分别计算10-5与10+5的值,并分两行显 示,第一行显示差,第二行显示和。其中有3个错误,快来改正吧!原创 2023-12-25 15:59:41 · 373 阅读 · 0 评论 -
啊哈c语言——2.5数字的家-变量(一起来找茬)
下面这段代码是让计算机计算1.2×1.5的值。其中有5个错误,快来改正吧!原创 2023-12-25 15:44:27 · 450 阅读 · 0 评论 -
啊哈c语言——2.4让计算机做加法
下面这段代码是让计算机计算321-123的结果。其中有7个错误,快来改正吧!原创 2023-12-25 15:16:57 · 341 阅读 · 0 评论 -
啊哈c语言——2.3多彩一点
下面这段代码是让计算机在屏幕上输出绿底白字的hi。其中有4个 错误,快来改正吧!1.尝试让计算机打印这个小飞机图案(绿底白字)。2.尝试让计算机打印这个小队旗图案(白底红字)。修改后:#include 更进一步,动手试一试。原创 2023-12-24 21:37:57 · 351 阅读 · 0 评论 -
啊哈c语言——2.2(让计算机开口说话)练习
2.如何让计算机说中文呢?让计算机像下面一样说“早上好”,应该怎么办?printf("早上好\n");1、尝试让计算机显示下面这些图形。3.尝试让计算机显示下面这个图形。更进一步,动手试一试。原创 2023-12-24 21:05:06 · 444 阅读 · 0 评论 -
啊哈c语言——2.2(让计算机开口说话)
啊哈c语言——2.2(让计算机开口说话)原创 2023-12-24 20:32:43 · 350 阅读 · 1 评论