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