编写一个程序,使用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* ***************** *************** ************* *********** ********* ******* ***** *** *