Problem
Write a program to print the multiplication table from 1 x 1 to 12 x 10 as given below −
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
Solution
Use two do while loops in nested form to display the multiplication table.
The logic used to display the multiplication table is as follows −
Inner loop is controlled by the variable column and is executed 10 times, whenever each time the outer loop is executed.
Outer loop is executed 12 times and controlled by variable row.
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("\n"); row = row + 1; } while (row <= ROWMAX);/*..... OUTER LOOP ENDS .....*/
Example
Following is the C program to print the multiplication table −
#include<stdio.h> #define COLMAX 10 #define ROWMAX 12 main(){ int row,column, y; row = 1; printf(" MULTIPLICATION TABLE \n"); printf("-----------------------------------------\n"); 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("\n"); row = row + 1; } while (row <= ROWMAX);/*..... OUTER LOOP ENDS .....*/ printf("-----------------------------------------\n"); }
Output
When the above program is executed, it produces the following output −
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 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 11 22 33 44 55 66 77 88 99 110 12 24 36 48 60 72 84 96 108 120 -----------------------------------------