
问题
编写一个程序,按照以下给定的格式打印从1 x 1到12 x 10的乘法表:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 ……………….20
3 6 9…………………….30
4 8 12 16……………..40
-
-
-
12 24……………………..120
解决方案
使用两个嵌套的do while循环来显示乘法表。
用于显示乘法表的逻辑如下:
内部循环由变量列控制,每当外部循环执行一次时,内部循环就会执行10次。
外部循环执行12次,由变量行控制。
do /*......OUTER LOOP BEGINS........*/{
column = 1;
do /*.......INNER LOOP BEGINS.......*/{
y = row * column;
printf("%4d", y);
column = column + 1;
}
while (column <= COLMAX); /*... INNER LOOP ENDS ...*/
printf("");
row = row + 1;
}
while (row <= ROWMAX);/*..... OUTER LOOP ENDS .....*/
示例
以下是打印乘法表的C程序−
实时演示
#include<stdio.h>
#define COLMAX 10
#define ROWMAX 12
main(){
int row,column, y;
row = 1;
printf(" MULTIPLICATION TABLE ");
printf("-----------------------------------------
");
do /*......OUTER LOOP BEGINS........*/ {
column = 1;
do /*.......INNER LOOP BEGINS.......*/ {
y = row * column;
printf("%4d", y);
column = column + 1;
}
while (column <= COLMAX); /*... INNER LOOP ENDS ...*/
printf("
");
row = row + 1;
}
while (row <= ROWMAX);/*..... OUTER LOOP ENDS .....*/
printf("-----------------------------------------
");
}
输出
当上述程序执行时,它产生以下输出 −
MULTIPLICATION TABLE
-----------------------------------------
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36
.........................................................