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

Chương trình C in mẫu hình lục giác (Hexagonal Pattern)

Cho số nguyên n, nhiệm vụ là tạo và hiển thị mẫu hình lục giác.

Ví dụ

Input: n = 5
Output: (hình ảnh lục giác)
Input: n = 4
Output: (hình ảnh lục giác)

Phương pháp:

  • Nhập số n từ người dùng.
  • Chia mẫu thành ba phần: trên, giữa, dưới.
  • Dùng vòng lặp in từng phần với dấu * và khoảng trắng.

Thuật toán

BẮT ĐẦU
Bước 1: Hàm pattern(int n)
    len = 2*n - 1
    // Phần trên
    Với i từ 0 đến n-1:
        temp = i + n
        Với k từ 0 đến temp-1:
            Nếu k == n+i-1 hoặc k == n-i-1: in '*'
            Ngược lại: in khoảng trắng
        In newline
    // Phần giữa
    Với m từ 0 đến n-3:
        Với j từ 0 đến len-1:
            Nếu j == 0 hoặc j == len-1: in '*'
            Ngược lại: in khoảng trắng
        In newline
    // Phần dưới
    res = n - 1
    Với h từ res xuống 0:
        temp2 = h + n
        Với k từ 0 đến temp2-1:
            Nếu k == n+h-1 hoặc k == n-h-1: in '*'
            Ngược lại: in khoảng trắng
        In newline
KẾT THÚC

Mã nguồn C

#include <stdio.h>

void pattern(int n) {
    int len = 2 * n - 1;
    // Phần trên
    for (int i = 0; i < n; i++) {
        int temp = i + n;
        for (int k = 0; k < temp; k++) {
            if ((k == n + i - 1) || (k == n - i - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
    // Phần giữa
    for (int m = 0; m < n - 2; m++) {
        for (int j = 0; j < len; j++) {
            if (j == 0 || j == len - 1)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
    // Phần dưới
    int res = n - 1;
    for (int h = res; h >= 0; h--) {
        int temp2 = h + n;
        for (int k = 0; k < temp2; k++) {
            if ((k == n + h - 1) || (k == n - h - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}

int main() {
    int n = 5;
    pattern(n);
    return 0;
}

Kết quả

Hiển thị mẫu hình lục giác bằng dấu * (xem hình ảnh).