一. main函数实现
1.参数n表示乘法口诀表总共有多少行
2.设定两个循环
- 外层循环控制总共有多少行
- 内层循环控制每行有多少个表达式以及表达式中的内容
#include<stdio.h> int main() { int n = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { for (int j = 1; j <=i; j++) { printf("%d*%d=%d ", j, i, i * j); } printf("\n"); } return 0; }
打印9*9乘法口诀表:
从图中看出第四排和第五排没有对齐,要想对齐,可以考虑 printf限定占位符的最小宽度(https://blog.csdn.net/wait___wait/article/details/135287228)
9*9乘法口诀表中最大位数是2,因此设最小宽度为2。默认是右对齐,而我们想要的是左对齐所以使用%-2d的形式。具体如下:
printf("%d*%d=%-2d ", j, i, i * j);
修改后运行示例:
如果想打印12*12的乘法口诀表,思考一下如何做到对齐呢?
答案是采用%-4d 的形式。
二. 自定义函数实现
思路:
1.设计函数原型,不需要返回值,参数n表示乘法口诀表总共有多少行
2.设定两个循环
- 外层循环控制总共有多少行
- 内层循环控制每行有多少个表达式以及表达式中的内容
void Multiplication(int i,int j,int n) { for (int i = 1; i <= n; i++) { for (int j = 1; j <=i; j++) { printf("%d*%d=%-2d ", j, i, i * j); } printf("\n"); } } #include<stdio.h> int main() { int i = 0; int j = 0; int n = 0; scanf("%d", &n); Multiplication(i, j, n); return 0; }
难点 :自定义函数时是否需要有返回值,实参和形参的对应关系。(自定义函数:https://blog.csdn.net/wait___wait/article/details/135047014?spm=1001.2014.3001.5502)(return返回值:)