题目:编写一段程序, 像下面这样为九九乘法表增加横纵标题。
-----出自【明解C语言】练习4-20.
| 1 2 3 4 5 6 7 8 9
------------------------------
1 | 1 2 3 4 5 6 7 8 9
2 | 2 4 6 8 10 12 14 16 18
3 | 3 6 9 12 15 18 21 24 27
4 | 4 8 12 16 20 24 28 32 36
5 | 5 10 15 20 25 30 35 40 45
6 | 6 12 18 24 30 36 42 48 54
7 | 7 14 21 28 35 42 49 56 63
8 | 8 16 24 32 40 48 56 64 72
9 | 9 18 27 36 45 54 63 72 81
注意: 第二行为30个短横线。
解析:
首先要输出第一行的内容,这里可以用for循环来写
printf (" |");
for (i=1;i<=9;i++)
{
printf ("%3d",i)
}
| 1 2 3 4 5 6 7 8 9
再用printf打印出------------------------------
printf ("------------------------------\n");
这样就完成了初步
| 1 2 3 4 5 6 7 8 9
-----------------------------------
其次就是99乘法表了,这个乘法表了,这里也可以用for循环来写,利用for嵌套实现99乘法表
for (i=1; i<=9; i++)
{
for (j=1; j<=9; j++)
{
printf ("%3d",i*j);
}
printf ("\n");
}
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
最后将每部分组合连接在一起就实现了这道题的正解:
答案代码:
#include <stdio.h>
int main ()
{
int i,j;
printf (" |");
for (j=1; j<=9; j++)
{
printf ("%3d",j);
}
printf ("\n");
printf ("------------------------------\n");
{
for (i=1; i<=9; i++)
{
printf ("%d |",i);
for (j=1; j<=9; j++)
{
printf ("%3d",i*j);
}
printf ("\n");
}
}
}
运行结果:
| 1 2 3 4 5 6 7 8 9
------------------------------
1| 1 2 3 4 5 6 7 8 9
2| 2 4 6 8 10 12 14 16 18
3| 3 6 9 12 15 18 21 24 27
4| 4 8 12 16 20 24 28 32 36
5| 5 10 15 20 25 30 35 40 45
6| 6 12 18 24 30 36 42 48 54
7| 7 14 21 28 35 42 49 56 63
8| 8 16 24 32 40 48 56 64 72
9| 9 18 27 36 45 54 63 72 81
总的来说这道题就是对循环的考察,可以拆分再组合,这样更利于初学者理解。