AI智能
改变未来

【PTA习题总结与反思】7-38 打印九九口诀表 (15分)【程序设计基于C#】

下面是一个完整的下三角九九口诀表:

1*1=11*2=2   2*2=41*3=3   2*3=6   3*3=91*4=4   2*4=8   3*4=12  4*4=161*5=5   2*5=10  3*5=15  4*5=20  5*5=251*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=361*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=491*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=641*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*1

N*N

的部分口诀表。

输入格式:

输入在一行中给出一个正整数

N

(1≤

N

≤9)。

输出格式:

输出下三角

N*N

部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例:

1*1=11*2=2   2*2=41*3=3   2*3=6   3*3=91*4=4   2*4=8   3*4=12  4*4=16

编写思路:

这道题是

c

语言初期学习中,非常典型的一题【他还有一个好兄弟叫做输出菱形】,主要考察的是输出的格式。此题的输出格式有两个要求:

  1. 按照阶梯形状输出:用双重
    for

    循环可以实现

  2. 等号右边数字占四位,左对齐:
    %-4d

    ,其中

    -

    表示左对齐,

    4

    表示数字占位个数,

    d

    表示整数类型

  3. 值得一提的是,这个乘法表的第一位数是按照列增加的,故
    i

    在内层,

    j

    在外层

通关代码:

#include <stdio.h>int main(){int N;int i, j;scanf(\"%d\", &N);for (j = 1; j <= N; j++){for (i = 1; i <= j; i++) //第j行最多只输出j组数{printf(\"%d*%d=%-4d\", i, j, i * j);}printf(\"\\n\"); //每输出完一行就换行}return 0;}

突发奇想,想用一个较少的行数完成这个题目,代码如下【仅供娱乐】

#include <stdio.h>int main(){int N;scanf(\"%d\", &N);for (int j = 1; j <= N; j++, printf(\"\\n\"))for (int i = 1; i <= j; i++)printf(\"%d*%d=%-4d\", i, j, i * j);return 0;}

其实想说的是合理的运用逗号运算符(

,

)、条件运算符(

?:;

),以及一些循环(

for

)的原理可以让代码变得异常简洁,不过此题效果不明显罢了。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 【PTA习题总结与反思】7-38 打印九九口诀表 (15分)【程序设计基于C#】