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

Chương trình C in tên trong hình trái tim bằng vòng lặp for

Đề bài

In hình trái tim với tên ở trung tâm, dùng vòng lặp for. Người dùng nhập tên và số hàng.

Thuật toán

  1. Khai báo biến, đọc tên và số hàng.
  2. Tính độ dài tên.
  3. In phần trên của trái tim (hai nửa hình elip).
  4. In phần dưới (tam giác ngược) và chèn tên ở hàng giữa.

Chương trình C

#include <stdio.h>
#include <string.h>

int main() {
    int i, j, n;
    char name[50];
    int len;

    printf("Nhập tên của bạn: ");
    gets(name);
    printf("Nhập số hàng: ");
    scanf("%d", &n);
    len = strlen(name);

    // Phần trên
    for (i = n/2; i <= n; i += 2) {
        for (j = 1; j < n-i; j += 2) printf(" ");
        for (j = 1; j <= i; j++) printf("*");
        for (j = 1; j <= n-i; j++) printf(" ");
        for (j = 1; j <= i; j++) printf("*");
        printf("\n");
    }

    // Phần dưới + tên
    for (i = n; i >= 1; i--) {
        for (j = i; j < n; j++) printf(" ");
        if (i == n) {
            for (j = 1; j <= (n*2 - len)/2; j++) printf("*");
            printf("%s", name);
            for (j = 1; j < (n*2 - len)/2; j++) printf("*");
        } else {
            for (j = 1; j <= (i*2)-1; j++) printf("*");
        }
        printf("\n");
    }
    return 0;
}

Kết quả

Nhập tên: Tutorials Point
Nhập số hàng: 10
      ***** *****
     ******* *******
    ********* *********
   **Tutorials Point**
  *****************
   ***************
    *************
     ***********
      *********
       *******
        *****
         ***
          *