Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C สำหรับแสดงตารางคูณ

ปัญหา

เขียนโปรแกรมเพื่อพิมพ์ตารางคูณตั้งแต่ 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 สองชั้นแบบซ้อนกัน เพื่อแสดงตารางคูณ

ตรรกะที่ใช้แสดงตารางคูณมีดังนี้:

  • ลูปใน (Inner loop) ถูกควบคุมด้วยตัวแปร column และทำงาน 10 ครั้ง ทุกครั้งที่ลูปนอกทำงานหนึ่งรอบ
  • ลูปนอก (Outer loop) ทำงาน 12 ครั้ง และถูกควบคุมด้วยตัวแปร row
do /*......ลูปนอก เริ่มต้น........*/{
    column = 1;
    do /*.......ลูปใน เริ่มต้น.......*/{
        y = row * column;
        printf("%4d", y);
        column = column + 1;
    } while (column <= COLMAX); /*... ลูปใน จบ ...*/
    printf("\n");
    row = row + 1;
} while (row <= ROWMAX);/*..... ลูปนอก จบ .....*/

ตัวอย่างโค้ด

โปรแกรม C ต่อไปนี้พิมพ์ตารางคูณ:

#include <stdio.h>
#define COLMAX 10
#define ROWMAX 12

int main() {
    int row, column, y;
    row = 1;
    printf(" MULTIPLICATION TABLE \n");
    printf("-----------------------------------------\n");
    do /*......ลูปนอก เริ่มต้น........*/ {
        column = 1;
        do /*.......ลูปใน เริ่มต้น.......*/ {
            y = row * column;
            printf("%4d", y);
            column = column + 1;
        } while (column <= COLMAX); /*... ลูปใน จบ ...*/
        printf("\n");
        row = row + 1;
    } while (row <= ROWMAX);/*..... ลูปนอก จบ .....*/
    printf("-----------------------------------------\n");
    return 0;
}

ผลลัพธ์

เมื่อรันโปรแกรมจะได้ผลลัพธ์ดังนี้:

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
-----------------------------------------