ปัญหา
เขียนโปรแกรมพิมพ์ตารางสูตรคูณตั้งแต่ 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 loops สองอัน ในรูปแบบซ้อนเพื่อแสดงตารางสูตรคูณ
ตรรกะที่ใช้แสดงตารางสูตรคูณมีดังนี้ −
วงในถูกควบคุมโดยคอลัมน์ตัวแปรและดำเนินการ 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("\n"); 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 \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"); }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
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 -----------------------------------------