首頁 >後端開發 >C++ >使用for循環列印姓名在心形圖案中的C程序

使用for循環列印姓名在心形圖案中的C程序

王林
王林轉載
2023-09-06 22:09:141346瀏覽

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

輸出

#執行上述程式時,會產生以下輸出-

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

以上是使用for循環列印姓名在心形圖案中的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除