如图所示,乘法口诀表的打印是一个既简单但又强调细节的问题
首先,第一眼能得出需要使用两个for循环嵌套来实现打印
外循环用来控制行数,内循环用来控制列数
如果关于循环或者for循环理解不够,下面这篇博客有详细介绍
其次,分析每次打印等式的规律:
乘号左边的数(被乘数)都等于列数
乘号右边的数(乘数)都等于行数
如此可以得出第一步结果:
但是打印完之后会发现,结果比我们想要的多出了一半的等式,
继续分析会发现,在第一行打印一个等式,第二行打印两个等式......也就是说每行打印的次数刚好等于行数,即每次内循环让 j 的值小于等于外循环(行数) i 的值
继续修改代码
这次的结果就基本和我们想要的一样了,但如果你足够细心的话,就会发现等式在打印时并不总是完全对齐,因为等式的积有时是一位数,有时是两位数
这个时候,再对printf函数略加修改
将 % 改为 %2d,表示最小输出两位, 再在%的后面加上一个 -号(负号),表示左对齐(默认右对齐),即可达到想要的结果
这次,结果达到我们满意的整整齐齐的样子了
这是最后完整的代码
#include<stdio.h> int main() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <=i; j++) { printf("%d*%d=%-2d ", j, i, j * i); } printf("\n"); } return 0; }