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

โปรแกรมพิมพ์สามเหลี่ยมฟลอยด์ย้อนกลับในภาษา C

คำอธิบายโปรแกรม

สามเหลี่ยมฟลอยด์ (Floyd's Triangle) เป็นอาร์เรย์สามเหลี่ยมมุมฉากของจำนวนธรรมชาติ ใช้ในการศึกษาวิทยาการคอมพิวเตอร์ ชื่อมาจากโรเบิร์ต ฟลอยด์ นิยามโดยการเติมแถวด้วยตัวเลขติดต่อกัน เริ่มจาก 1 ที่มุมซ้ายบน

Floyd's Triangle:          Reverse Floyd's Triangle:
1                          15 14 13 12 11
2 3                        10 9 8 7
4 5 6                      6 5 4
7 8 9 10                   3 2 1
11 12 13 14 15             1

อัลกอริทึม

การพิมพ์สามเหลี่ยมฟลอยด์ -

รับจำนวนแถว
พิมพ์ค่า 1 สำหรับแถวที่ 1
พิมพ์ค่า 2, 3 สำหรับแถวที่ 2
พิมพ์ค่า 4, 5, 6 สำหรับแถวที่ 3
ทำซ้ำจนครบจำนวนแถว

การพิมพ์สามเหลี่ยมฟลอยด์ย้อนกลับ -

รับจำนวนแถว
พิมพ์ค่าตามลำดับย้อนกลับตามรูปแบบสามเหลี่ยมฟลอยด์ย้อนกลับ

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

/* Program to print the Reverse of Floyd's Triangle */
#include <stdio.h>

int main() {
    int r, c = 1;
    int rows, revrows, r1, c1, d;
    // clrscr();
    printf("Enter number of rows to print the Floyd's Triangle: ");
    scanf("%d", &rows);
    printf("\n");
    for (r = 1; r <= (rows * (rows + 1)) / 2; r++) {
        printf("%d ", r);
        if (r == (c * (c + 1)) / 2) {
            printf("\n");
            c++;
        }
    }
    printf("\n\n");
    /* Printing the Reverse of Floyd's Triangle */
    printf("Enter number of rows to print the reverse of Floyd's Triangle: ");
    scanf("%d", &revrows);
    printf("\n\n");
    printf("Reverse of Floyd's Triangle\n\n");
    d = (revrows * (revrows + 1)) / 2;
    for (r1 = revrows; r1 >= 1; r1--) {
        for (c1 = r1; c1 >= 1; c1--, d--) {
            printf("%4d", d);
        }
        printf("\n");
    }
    // getch();
    return 0;
}

เอาต์พุต

แสดงสามเหลี่ยมฟลอยด์และสามเหลี่ยมฟลอยด์ย้อนกลับ ตามจำนวนแถวที่ป้อน