用C语言编一个程序,使之用“*”打印出一个爱心的图案

2022-04-20 教育 49阅读
个人认为还行,7以上效果较好,不知道你要空心的还是实心的,都附上吧(百度知道好像把两个空格的位置上传后变成了一个空格,你自己要改一下,输出位置为一个空格的全部改成两个,其他的不用改):

实心的:
#include
intn;
voiddraw(intn)
{
inti,j;
for(i=1-(n>>1);i<=n;i++)
if(i>=0)
{
for(j=0;jfor(j=1;j<=2*(n-i)+1;j++)printf("*");
printf("\n");
}
else
{
for(j=i;j<0;j++)printf("");
for(j=1;j<=n+2*i+1;j++)printf("*");
for(j=1;j<=-1-2*i;j++)printf("");
for(j=1;j<=n+2*i+1;j++)printf("*");
printf("\n");
}
}
intmain()
{
printf("Pleaseinputthesize(n>=4):");
scanf("%d",&n);
draw(n);
return0;
}

空心的:
#include
intn;
voiddraw(intn)
{
inti,j;
for(i=1-(n>>1);i<=n;i++)
if(i>0)
{
for(j=0;jfor(j=1;j<=2*(n-i)+1;j++)
if(j==1||j==2*(n-i)+1)printf("*");
elseprintf("");
printf("\n");
}
else
if(i==0)
{
printf("*");
for(j=1;jprintf("*");
for(j=1;jprintf("*\n");
}
else
{
for(j=i;j<0;j++)printf("");
for(j=1;j<=n+2*i+1;j++)
if(i==1-(n>>1))printf("*");
elseif(j==1||j==n+2*i+1)printf("*");
elseprintf("");
for(j=1;j<=-1-2*i;j++)printf("");
for(j=1;j<=n+2*i+1;j++)
if(i==1-(n>>1))printf("*");
elseif(j==1||j==n+2*i+1)printf("*");
elseprintf("");
printf("\n");
}
}
intmain()
{
printf("Pleaseinputthesize(n>=4):");
scanf("%d",&n);
draw(n);
return0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com