Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để in tên bên trong mẫu trái tim bằng vòng lặp for.

Vấn đề

Viết chương trình in mẫu hình trái tim với tên ở giữa bằng vòng lặp for.

Giải pháp

Người dùng phải nhập tên sẽ được in ở giữa cùng với số hàng mà các dấu sao phải được in.

Thuật toán

Tham khảo thuật toán đưa ra bên dưới để in tên trong hình trái tim bằng cách sử dụng vòng lặp for.

Bước 1 - Khai báo các biến.

Bước 2 - Đọc tên trong thời gian chạy sẽ được in ở giữa.

Bước 3 - Đọc số hàng.

Bước 4 - Tìm độ dài của tên.

Bước 5 - In phần trên của trái tim.

Bước 6 - In phần dưới của trái tim.

Bước 7 - In tên trên màn hình.

Ví dụ

Sau đây là chương trình C để in tên trong hình trái tim bằng cách sử dụng vòng lặp for -

#include <stdio.h>
#include <string.h>
int main(){
   int i, j, n;
   char name[50];
   int len;
   printf("Enter your name: ");
   gets(name);
   printf("Enter no of rows: ");
   scanf("%d", &n);
   len = strlen(name);
   // Print upper part of the heart shape with stars
   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");
   }
   // Prints lower triangular part with stars
   for(i=n; i>=1; i--){
      for(j=i; j<n; j++){
         printf(" ");
      }
      // Print the name on screen
      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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter your name: Tutorials POint
Enter no of rows: 10
      ***** *****
    ******* *******
  ********* *********
   **Tutorials POint*
   *****************
    ***************
     *************
      ***********
       *********
        *******
         *****
          ***
           *