其他分享
首页 > 其他分享> > 7-20 打印九九口诀表

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