首页 > 后端开发 > C++ > 正文

使用for循环打印姓名在心形图案中的C程序

王林
发布: 2023-09-06 22:09:14
转载
1331 人浏览过

使用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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板