题目:输出9*9乘法表。
程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。
思路:由程序分析,我们先求出一行,再由行来控制列,利用两层for循环实现。代码如下:
#include <stdio.h>
int main() {
int i, j, ret;
// 利用i来控制行数
for (i = 1; i < 10; i++) {
//在i控制下,用j来控制列数
for (j = 1; j <= i; j++) {
//最终结果以ret输出
ret = i * j;
//这里的-3d,是为了将输出内容对齐,更加美观
printf("%d * %d = %-3d", i, j, ret);
}
//一行结束后,换行
printf("\n");
}
return 0;
}
最终实现效果如下:
我们可以看到99乘法表成功实现,那么这里我们继续探讨一下,如果我们想打印任意nn乘法表该如何实现呢?
这里,我们自定义一个函数来实现nn乘法表,在控制台输入n,即可实现n*n乘法表,代码如下:
#include <stdio.h>
//自定义printf_table函数
void printf_table(int n) {
//这里和前面99乘法表原理相同
int i = 0;
for (i = 1; i <= n; i++) {
int j = 0;
for (j = 1; j <= i; j++) {
printf("%d*%d=%d ", i, j, i * j);
}
printf("\n");
}
}
int main() {
int n = 0;
// 输入一个数n
scanf("%d", &n);
//调用自定义函数printf_table,将参数n传入函数中
printf_table(n);
return 0;
}
那么,我们来看一下,若我们输入n为6,则代码运行效果如下:
好了,我们成功实现n*n乘法表。