使用 for 迴圈在心型圖案中列印名字的 C 程式。


問題

編寫一個程式,使用 for 迴圈列印心形圖案,並在中心列印姓名。

解決方案

使用者必須輸入要列印在中心的姓名以及要列印星星的行數。

演算法

參考以下演算法,透過 for 迴圈在心形圖案中列印姓名。

步驟 1 − 宣告變數。

步驟 2 − 在執行時讀取要在中心列印的姓名。

步驟 3 − 讀取行數。

步驟 4 − 找出姓名的長度。

步驟 5 − 列印心形的上半部分。

步驟 6 − 列印心形的下半部分。

步驟 7 − 在螢幕上列印姓名。

示例

以下是用 for 迴圈在心形圖案中列印姓名的 C 程式 −

 現場演示

#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("
");    }    // 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("
");    }    return 0; }

輸出

當執行以上程式時,它將產生以下輸出 −

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

更新日期: 26-03-2021

2K+ 瀏覽量

開啟你的 事業

完成課程進行認證

開始
廣告