Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình in tam giác Floyd ngược trong C


Mô tả chương trình

Tam giác Floyd là mảng tam giác vuông của các số tự nhiên, dùng trong giáo dục khoa học máy tính. Được đặt tên theo Robert Floyd. Được định nghĩa bằng cách điền các hàng với các số liên tiếp, bắt đầu từ 1 ở góc trên bên trái.

Tam giác Floyd:          Tam giác Floyd ngược:
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           (ví dụ 5 hàng)

Thuật toán

In tam giác Floyd:

Nhập số hàng
In giá trị 1 cho hàng 1
In 2 giá trị 2, 3 cho hàng tiếp theo
In 3 giá trị 4, 5, 6 cho hàng sau
Lặp lại cho đến số hàng chỉ định

In tam giác Floyd ngược:

Nhập số hàng
In các giá trị theo thứ tự ngược như tam giác Floyd ngược

Ví dụ mã nguồn

/* Chương trình in tam giác Floyd ngược */
#include <stdio.h>

int main() {
    int r, c = 1;
    int rows, revrows, r1, c1, d;
    // clrscr();

    printf("Nhap so hang de in tam giac Floyd: ");
    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");

    /* In tam giác Floyd ngược */
    printf("Nhap so hang de in tam giac Floyd nguoc: ");
    scanf("%d", &revrows);
    printf("\n\n");
    printf("Tam giac Floyd nguoc\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;
}

Kết quả đầu ra

Chương trình in tam giác Floyd ngược trong C