欢迎光临
我们一直在努力

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

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

今天没有学新语法,而是进入了疯狂的“综合刷题”模式。从简单的循环累加,到极具视觉冲击力的九九乘法表,再到经典的“三个数从大到小排序”。我发现,代码写得越多,对逻辑的掌控感就越强。

【第一部分:循环控制——continue 的妙用】

  • 题目:求 1~100 中所有奇数的和(要求用 continue 跳过偶数)。
  • 核心代码:
  • int sum = 0;
    for (int i = 1; i <= 100; i++) {
    if (i % 2 == 0)
    continue; // 如果是偶数,直接跳过本次循环后面的累加,进入下一次
    else
    sum += i;
    }

  • 我的理解:continue 就像游戏里的“跳过此关”。当遇到偶数时,它直接无视了下面的 sum += i;,让代码继续下一轮。这比写 if (i % 2 != 0) 少了一层嵌套,代码看起来更清爽。
  • 【第二部分:高光时刻——嵌套循环打印 9*9 乘法表】

  • 场景:在屏幕上输出 9*9 乘法口诀表。
  • 代码实操:
  • int i, n, m;
    for (n = 1; n <= 9; n++) { // 外层循环控制行
    for (i = 1; i <= n; i++) { // 内层循环控制列
    m = i * n;
    printf("%d * %d = %d ", i, n, m);
    }
    printf("\\n"); // 每一行打印完,记得换行
    }

  • 我的理解:嵌套循环就像是“钟表的指针”。外层 n 走一步,内层 i 就要走满一整圈。这里内层的条件是 i <= n(比如第3行,列数就只有3列),完美契合了乘法表的阶梯形状。
  • 【第三部分:经典逻辑题——三个数从大到小排序】

  • 题目:输入三个整数,按从大到小输出。
  • 硬核交换法:
  • int a, b, c, i;
    scanf_s("%d %d %d", &a, &b, &c);
    // 1. 确保 a 是最大的
    if (a < b) {
    i = a; a = b; b = i;
    }
    if (a < c) {
    i = a; a = c; c = i;
    }
    // 2. 此时 a 已经是老大了,只需要再让 b 和 c 比一下
    if (b < c) {
    i = b; b = c; c = i;
    }
    printf("%d %d %d\\n", a, b, c);

  • 我的踩坑感悟:交换两个变量,不能直接写 a = b; b = a;(这样 a 原本的值就丢了)。必须引入一个“临时工” i来中转。这个思维不仅在排序里有用,在以后搞单片机交换寄存器数据时也是基本功。
    【第四部分:刷题时的两个“小翻车”记录】
    今天有两道题虽然做出来了,但看了答案后发现自己思路绕远了:
  • 数 9 的个数:我本来想用 while(n>0) 配合 n– 把 1 到 100 全拆一遍,搞得很复杂。其实更简单的思路是:看个位是不是9(n % 10 == 9),看十位是不是9(n / 10 == 9),这就行了。写代码不能只用蛮力。

    int i = 0, n =100;
    //scanf_s("%d", n);
    while(n>0) {

    if (n % 10 == 9) {
    i++;
    n—;
    }
    else
    n—;

    打印 1000~2000 年的闰年:我居然顺手用 scanf_s 接收输入去了,忘了这题是要在代码里用一个 for (year = 1000; year <= 2000; year++) 循环来打印。这说明我的“循环思维”还得继续巩固,不能一上来就想着输入。

    int year = 0, n = 0;
    //scanf_s("%d", &n);
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    printf("%d是闰年", n);
    }

    【总结】
    今天敲代码敲得很爽,从简单的条件判断过渡到了多层循环和数据交换。感觉自己对 for 和 while 的掌控力更强了。明天准备继续巩固这几道题,把今天优化后的思路重新手敲一遍!

    赞(0)
    未经允许不得转载:171主机测评 » C语言刷题日记:嵌套循环的威力与三数排序的逻辑推演
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址