C程序使用for循环在心形图案内打印名称。

问题

编写一个程序,使用for循环在中心打印名称为心形的图案。

解决方案

用户必须输入应该打印在中间的名称以及必须打印星标的行数。

算法

请参考下面给出的算法,以通过使用for循环以心形图案打印姓名。

步骤1-声明变量。

步骤2-在运行时读取一个名称,该名称应打印在中间。

步骤3-读取行数。

步骤4-查找名称的长度。

步骤5-打印心的上部。

步骤6-打印心的下部。

步骤7-在屏幕上打印名称。

示例

以下是C程序通过使用for循环以心脏模式打印名称-

#include <stdio.h>

#include <string.h>

int main(){

   int i, j, n;

   char name[50];

   int len;

   printf("输入你的名字: ");

   gets(name);

   printf("输入行数: ");

   scanf("%d", &n);

   len = strlen(name);

   // 在星星上打印心形的上半部分

   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");

   }

   // 用星号打印下部三角形部分

   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;

}

输出结果

执行以上程序后,将产生以下输出-

输入你的名字: Nhooo       cOm

输入行数: 10

      ***** *****

    ******* *******

  ********* *********

   ** Nhooo       cOm*

   *****************

    ***************

     *************

      ***********

       *********

        *******

         *****

          ***

           *

以上是 C程序使用for循环在心形图案内打印名称。 的全部内容, 来源链接: utcz.com/z/327641.html

回到顶部