使用 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* ***************** *************** ************* *********** ********* ******* ***** *** *
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP