用C语言打印一个心形
此心形分为三个部分:
- 上面部分 两个梯形 (共三行)
- 中间部分 矩形 (共三行)
- 下面部分 倒三角形 (共八行)
第一部分 打印两个梯形
注意梯形中,行与行之间空格、星号的关系
for(i=0; i<3; i++)
{
for(j=0; j<5-2*i; j++) //打印左半部分空格,每下行少两个空格
printf(" ");
for(j=0; j<6+4*i; j++) //打印左半部分”*”
printf("*");
for(j=0; j<9-4*i; j++) //打印右半部分空格,每下行少四个空格
printf(" ");
for(j=0; j<6+4*i; j++) //打印右半部分”*”
printf("*");
printf("\n");
}
第二部分 打印3*31矩形
for(i=0; i<3; i++)
{
for(j=0; j<31; j++)
printf("*");
printf("\n");
}
第三部分 打印倒三角形
for(i=0; i<8; i++) //三角形共八行
{
for(j=0; j<1+2*i; j++) //左边空格第一行为1,往下每行递增2个
printf(" ");
for(j=0; j<29-i*4; j++) //第一行有29个”*”,往下每行递增4个
printf("*");
printf("\n"); //整行打印结束后换行
}
全部代码如下:
#include<stdio.h>
int main()
{
int i, j;
//打印两个梯形
for(i=0; i<3; i++)
{
for(j=0; j<5-2*i; j++)
printf(" ");
for(j=0; j<6+4*i; j++)
printf("*");
for(j=0; j<9-4*i; j++)
printf(" ");
for(j=0; j<6+4*i; j++)
printf("*");
printf("\n");
}
//打印矩形
for(i=0; i<3; i++)
{
for(j=0; j<31; j++)
printf("*");
printf("\n");
}
//打印倒三角
for(i=0; i<8; i++)
{
for(j=0; j<1+2*i; j++)
printf(" ");
for(j=0; j<29-i*4; j++)
printf("*");
printf("\n");
}
}
此题注意空格、星号与行数的关系即可。