使用 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* ***************** *************** ************* *********** ********* ******* ***** *** *
广告