Online Compiler C

#include <stdio.h> int main() { int n, m; scanf("%d %d", &n, &m); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { printf("%d",i*j); if(j<m){ printf(" "); } } printf("\n"); } return 0; }
这段代码的功能是:读入两个整数 n 和 m,然后输出一个 n 行 m 列的乘法表,每个位置显示行号乘以列号的结果,数字之间用空格分隔,每行末尾换行。

- 注意内层循环中 `printf("%d",i*j)` 直接输出乘积,没有控制输出宽度。如果乘积较大(比如两位数或三位数),不同列的数字宽度不同,会导致表格列不对齐。可以考虑用 `printf("%d", i*j)` 后面加空格的方式,但更常见的是用 `printf("%-4d", i*j)` 这样的格式控制来固定每个数字占用的宽度,让表格整齐。
- 另外,外层循环变量 `i` 从 1 到 n,内层 `j` 从 1 到 m,这符合乘法表的常规逻辑,但注意题目是否要求输出完整的乘法表(比如第一行和第一列是否要显示乘数本身)。当前代码直接输出乘积,没有单独输出行号和列号作为表头。