资讯详情

C语言刷题日记:嵌套循环的威力与三数排序的逻辑推演

📅 2026/10/30 8:31:07 | 华诺云谱 👁 阅读
C语言刷题日记:嵌套循环的威力与三数排序的逻辑推演
C语言刷题日记嵌套循环的威力与三数排序的逻辑推演今天没有学新语法而是进入了疯狂的“综合刷题”模式。从简单的循环累加到极具视觉冲击力的九九乘法表再到经典的“三个数从大到小排序”。我发现代码写得越多对逻辑的掌控感就越强。【第一部分循环控制——continue 的妙用】题目求 1~100 中所有奇数的和要求用 continue 跳过偶数。核心代码intsum0;for(inti1;i100;i){if(i%20)continue;// 如果是偶数直接跳过本次循环后面的累加进入下一次elsesumi;}我的理解continue 就像游戏里的“跳过此关”。当遇到偶数时它直接无视了下面的 sum i;让代码继续下一轮。这比写 if (i % 2 ! 0) 少了一层嵌套代码看起来更清爽。【第二部分高光时刻——嵌套循环打印 9*9 乘法表】场景在屏幕上输出 9*9 乘法口诀表。代码实操inti,n,m;for(n1;n9;n){// 外层循环控制行for(i1;in;i){// 内层循环控制列mi*n;printf(%d * %d %d ,i,n,m);}printf(\n);// 每一行打印完记得换行}我的理解嵌套循环就像是“钟表的指针”。外层 n 走一步内层 i 就要走满一整圈。这里内层的条件是 i n比如第3行列数就只有3列完美契合了乘法表的阶梯形状。【第三部分经典逻辑题——三个数从大到小排序】题目输入三个整数按从大到小输出。硬核交换法inta,b,c,i;scanf_s(%d %d %d,a,b,c);// 1. 确保 a 是最大的if(ab){ia;ab;bi;}if(ac){ia;ac;ci;}// 2. 此时 a 已经是老大了只需要再让 b 和 c 比一下if(bc){ib;bc;ci;}printf(%d %d %d\n,a,b,c);我的踩坑感悟交换两个变量不能直接写 a b; b a;这样 a 原本的值就丢了。必须引入一个“临时工” i来中转。这个思维不仅在排序里有用在以后搞单片机交换寄存器数据时也是基本功。【第四部分刷题时的两个“小翻车”记录】今天有两道题虽然做出来了但看了答案后发现自己思路绕远了数 9 的个数我本来想用 while(n0) 配合 n-- 把 1 到 100 全拆一遍搞得很复杂。其实更简单的思路是看个位是不是9n % 10 9看十位是不是9n / 10 9这就行了。写代码不能只用蛮力。inti0,n100;//scanf_s(%d, n);while(n0){if(n%109){i;n--;}elsen--;打印 1000~2000 年的闰年我居然顺手用 scanf_s 接收输入去了忘了这题是要在代码里用一个 for (year 1000; year 2000; year) 循环来打印。这说明我的“循环思维”还得继续巩固不能一上来就想着输入。intyear0,n0;//scanf_s(%d, n);if((year%40year%100!0)||year%4000){printf(%d是闰年,n);}【总结】今天敲代码敲得很爽从简单的条件判断过渡到了多层循环和数据交换。感觉自己对 for 和 while 的掌控力更强了。明天准备继续巩固这几道题把今天优化后的思路重新手敲一遍
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑