一. 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返回值:)