7-20 打印九九口诀表
作者:互联网
题目要求
下面是一个完整的下三角九九口诀表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
算法思路
最开始我考虑按列打印,但这样好像无法实现,因此考虑按行打印。
这个题我做起来比较困难的地方就是每一次都要从1开始,这里可以考虑双重循环,因为在内层循环里变量会被重新赋值,对于本题即是1。
首先对表格进行观察:每一行的第一个数字从1开始,以i结束,i的初值为1,每一轮外层循环结束i++,第二个数字在下一行会加一,但在同一行内不发生变化,因此可以定义变量j,初值为0,外层循环执行一次j++,并且在外层循环执行换行操作。
对于内层循环,假设内层循环每次被重新赋值的变量是k,那么内层循环的结束条件应该是k<=i。
代码实现
#include <stdio.h>
void Multiplication(int);
int main()
{
int N;
scanf("%d", &N);
Multiplication(N);
return 0;
}
void Multiplication (int N)
{
int i;
int j=0;
int k=0;
for (i=1; i<=N; i++)
{
j++; //式子中的第二个数,每次在下一行都要加1,但在同一行值不变。
{
for (k=1; k<=i; k++)
{
printf("%d*%d=%-4d", k, j, k*j);
}
}
printf("\n");
}
}
知识点回顾
占4位、左对齐: %-4d
#include <stdio.h>
int main() {
printf("%10d\n", 123); //右对齐,数字宽度为10
printf("%-10d\n",123); //左对齐,数字宽度为10
return 0;
}
小结
如果你有更高效的代码或建议,请不吝赐教!
如果你觉得这篇文章对你有帮助,请为小白博主点个赞,你的点赞是对小白博主最大的鼓励!
标签:%-,20,九九,口诀,内层,int,循环,printf,对齐 来源: https://blog.csdn.net/Zjb107/article/details/120842582