设计初衷:在直角三角形练习的基础上进一步学习
设计思路:将<空格>部分作为虚部,将<*>部分作为实部,分别输出
代码如下:
#include<stdio.h>
#include<unistd.h>
int main(int argc, const char* argv[])
{
//输入
int num;
printf("❤ 爱心大小 ❤ :");
scanf("%d",&num);
//虚部比例控制
int n1=num/2;
int n2=num/2;
int n3=num/2;
int m=1;
int x=num;//控制上半比例
//上半
for (int i = 0; i < num; i+=2)
{
//虚部1
for(int k=n1-1;k>=0;k--)
{
printf(" ");
}
n1--;
//实部1
sleep(0.99);
for (int j = 0; j < x+1; j++)
{
printf("*");
sleep(0.99);
}
//虚部2
for(int k=n2;k>0;k--)
{
printf(" ");
}
n2--;
//虚部3
for(int k=n3;k>0;k--)
{
printf(" ");
}
n3--;
//实部2
for (int j = 0; j < x+1; j++)
{
printf("*");
}
printf("\n");
x+=2;
}
//中间
for ( int i = 0; i < num/5; i++)
{
sleep(0.99);
for ( int j = 0; j < num*4+2; j+=2)
{
sleep(0.99);
printf("**");
}
printf("\n");
}
//下半
for(int a=0;a<(num*2.02);a+=2)
{
//虚部1
for ( int c = 1; c < m*2; c+=2)
{
printf(" ");
}
m+=2;
//实部1
sleep(0.99);
for (float b = (num*2); b >a ; b--)
{
printf("*");
}
//实部2
for (float b = (num*2); b >a; b--)
{
sleep(0.99);
printf("*");
}
printf("\n");
}
return 0;
}