第三题:打印九九乘法表

实验题目

编写一个C程序,打印出9x9乘法表的一部分。

程序应该使用两个嵌套的 for 循环来实现。外层循环控制乘法表的行数,从1到9;内层循环控制每行中的列数,列数应该等于当前的行数。

在每个内层循环中,程序应该打印出当前列数和行数的乘积,并且每个乘积后面跟随一个制表符 \t 以保持格式整齐。

每行结束后,程序应该打印一个换行符 \n 以开始新的一行。

参考输出格式 printf("%d*%d=%d\t", j, i, i * j);

实验要求

  1. 使用嵌套循环:程序需要使用两个嵌套的for循环来实现乘法表的打印。
  2. 外层循环:外层循环控制乘法表的行数,从1到9。
  3. 内层循环:内层循环控制每行中的列数,列数应该等于当前的行数。
  4. 打印乘积:在每个内层循环中,程序应该打印出当前列数和行数的乘积,并且每个乘积后面跟随一个制表符\t以保持格式整齐。
  5. 换行:每行结束后,程序应该打印一个换行符\n以开始新的一行。

实验代码框架

//03_nested_loops.c

#include <stdio.h>

/**
 * 题目描述:
 * 编写一个C程序,打印出9x9乘法表的一部分。
 * 程序应该使用两个嵌套的 for 循环来实现。外层循环控制乘法表的行数,从1到9;内层循环控制每行中的列数,列数应该等于当前的行数。
 * 在每个内层循环中,程序应该打印出当前列数和行数的乘积,并且每个乘积后面跟随一个制表符 \t 以保持格式整齐。
 * 每行结束后,程序应该打印一个换行符 \n 以开始新的一行。
 * 参考输出格式 printf("%d*%d=%d\t", j, i, i * j);
 */

int main(void)
{		
	//TODO

	return 0;
}

实验解析

代码实现

#include <stdio.h>

int main(void)
{
    // 外层循环控制行数
    for (int i = 1; i <= 9; i++) {
        // 内层循环控制列数,列数等于当前行数
        for (int j = 1; j <= i; j++) {
            // 打印乘积和制表符
            printf("%d*%d=%d\t", j, i, i * j);
        }
        // 每行结束打印换行符
        printf("\n");
    }

    return 0;
}

代码解释

  • 外层循环for (int i = 1; i <= 9; i++),这个循环从1到9,代表乘法表的行数。
  • 内层循环for (int j = 1; j <= i; j++),这个循环的次数由外层循环的当前值i决定,即每行的列数等于当前的行数。
  • 打印乘积printf("%d*%d=%d\t", j, i, i * j);,这个语句打印出当前列数j和行数i的乘积,并且每个乘积后面跟随一个制表符\t,以保持输出格式整齐。
  • 换行printf("\n");,这个语句在每行结束后打印一个换行符\n,以开始新的一行。