int main()
{
int i, j, k, l, m
char c = '*' //用*号打印爱心
for (i = 1i <= 5i++)
printf("\n") //开头空出5行
for (i = 1i <= 3i++)
{ //前3行中间有空隙分开来写
for (j = 1j <= 32 - 2 * ij++)
printf(" ") //左边的空格,每下一行左边的空格比上一行少2个 //8*n-2*i
for (k = 1k <= 4 * i + 1k++)
printf("%c", c) //输出左半部分字符小爱心
for (l = 1l <= 13 - 4 * il++)
printf(" ") //中间的空格,每下一行的空格比上一行少4个
for (m = 1m <= 4 * i + 1m++)
printf("%c", c) //输出右半部分字符小爱心
printf("\n") //每一行输出完毕换行
}
for (i = 1i <= 3i++)
{ //下3行中间没有空格
for (j = 1j <= 24 + 1j++)
printf(" ") //左边的空格 //8*(n-1)+1
for (k = 1k <= 29k++)
printf("%c", c) //输出字符小爱心
printf("\n") //每一行输出完毕换行
}
for (i = 7i >= 1i--)
{ //下7行
for (j = 1j <= 40 - 2 * ij++)
printf(" ") //左边的空格,每下一行左边的空格比上一行少2个//8*(n+1)-2*i
for (k = 1k <= 4 * i - 1k++)
printf("%c", c) //每下一行的字符小爱心比上一行少4个(这个循环是i--)
printf("\n") //每一行输出完毕换行
}
for (i = 1i <= 39i++)
printf(" ") //最后一行左边的空格
printf("%c\n", c) //最后一个字符小爱心
for (i = 1i <= 5i++)
printf("\n") //最后空出5行
return 0
}
个人认为还行,7以上效果较好,不知道你要空心的还是实心的,都附上吧(百度知道好像把两个空格的位置上传后变成了一个空格,你自己要改一下,输出位置为一个空格的全部改成两个,其他的不用改):实心的:
#include<stdio.h>
int n
void draw(int n)
{
int i,j
for (i=1-(n>>1)i<=ni++)
if (i>=0)
{
for (j=0j<ij++) printf(" ")
for (j=1j<=2*(n-i)+1j++) printf(" *")
printf("\n")
}
else
{
for (j=ij<0j++) printf(" ")
for (j=1j<=n+2*i+1j++) printf(" *")
for (j=1j<=-1-2*ij++) printf(" ")
for (j=1j<=n+2*i+1j++) printf(" *")
printf("\n")
}
}
int main()
{
printf("Please input the size (n>=4):")
scanf("%d",&n)
draw(n)
return 0
}
空心的:
#include<stdio.h>
int n
void draw(int n)
{
int i,j
for (i=1-(n>>1)i<=ni++)
if (i>0)
{
for (j=0j<ij++) printf(" ")
for (j=1j<=2*(n-i)+1j++)
if (j==1||j==2*(n-i)+1) printf(" *")
else printf(" ")
printf("\n")
}
else
if (i==0)
{
printf(" *")
for (j=1j<nj++) printf(" ")
printf(" *")
for (j=1j<nj++) printf(" ")
printf(" *\n")
}
else
{
for (j=ij<0j++) printf(" ")
for (j=1j<=n+2*i+1j++)
if (i==1-(n>>1)) printf(" *")
else if (j==1||j==n+2*i+1) printf(" *")
else printf(" ")
for (j=1j<=-1-2*ij++) printf(" ")
for (j=1j<=n+2*i+1j++)
if (i==1-(n>>1)) printf(" *")
else if (j==1||j==n+2*i+1) printf(" *")
else printf(" ")
printf("\n")
}
}
int main()
{
printf("Please input the size (n>=4):")
scanf("%d",&n)
draw(n)
return 0
}
#include<stdio.h>int main()
{
int i,j,k,l,m
char c='*'
for(i=1i<=5i++)
printf("\n")
for(i=1i<4i++)
{
for(j=1j<27-i*2j++)
printf(" ")
for(k=1k<=i*4+1k++)
printf("%c",c)
for(l=1l<=9-4*(i-1)l++)
printf(" ")
for(m=1m<=i*4+1m++)
printf("%c",c)
printf("\n")
}
for(i=1i<4i++)
{
for(j=1j<20j++)
printf(" ")
for(k=1k<=29k++)
printf("%c",c)
printf("\n")
}
for(i=1i<8i++)
{
for(j=1j<20+2*ij++)
printf(" ")
for(k=1k<=29-4*ik++)
printf("%c",c)
printf("\n")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)