题目
在控制台输出标准的九九乘法表,要求列对齐排版整齐。
输入格式:无键盘输入。
输出格式:输出 9 行乘法算式表,每项形如 1*1=1,算式之间保持固定宽度对齐。
数据范围与约定:行数 1 ≤ i ≤ 9,列数 1 ≤ j ≤ i。
思路与算法
1. 双重循环控制行列
外层循环 i 控制行数(1~9),内层循环 j 控制列数(1~i)。下三角结构的特征是内层循环终止条件为 j <= i。
2. 格式化对齐技巧
在 printf 中使用 %-4d 实现左对齐并保留 4 个字符宽度,确保单双位数相乘的算式占据相同宽度,避免阶梯错位。每行结束后输出换行符。
完整程序
#include <stdio.h>
int main(void)
{
// 外层循环控制行号(1~9)
for (int i = 1; i <= 9; i++) {
// 内层循环控制列号(1~i),形成下三角结构
for (int j = 1; j <= i; j++) {
// %-4d 实现左对齐并占 4 字符宽,保证各列整齐不发生错位
printf("%d*%d=%-4d", j, i, i * j);
}
putchar('\n');
}
return 0;
}运行示例
输出:
1*1=1
1*2=2 2*2=4
...