C语言打印简单图案(三角形,菱形,心形)
打印图形,重要的是设计算法,找到空格个数与行,星号个数和行的关系,再利用循环输出空格和星号或其他符号。
//直角三角形
#include <stdio.h>
void main (void)
{
int i,k;
char j='*';
for(i=0;i<5;i++)
{ for(k=0;k<i+1;k++)
putchar(j);
putchar('\n');
}
getchar();
}
直角三角形比较简单,第几行就输入几个星号。
而钝角三角形就需分成两部分
//钝角三角形
#include <stdio.h>*
void main(void)
{
int i,j;
char a='*';
for(i=1;i<10;i++)
{
for(j=1;j<i+1&&j+i<11;j++)
putchar(a);
putchar('\n');
}
getchar();
}
打印菱形(size为正奇数)。size为菱形中间,星号的数量(最多)。
#include <stdio.h>
#define size 25
void main (void)
{
int i,j,k;
char a='*',b=' ';
for(i=0;i<(size+1)/2;i++)
{
for(k=0;k<size/2-i;k++)
putchar(b);
for(j=0;j<=2*(i-1)+2;j++)
putchar(a);
putchar('\n');
}
for(i=0;i<size/2;i++)
{
for(k=0;k<i+1;k++)
putchar(b);
for(j=0;j<size-(i+1)*2;j++)
putchar(a);
putchar('\n');
}
getchar();
}
打印心形(设置成死循环,让它一直打印爱心,并控制速度,这样效果比较好)
代码中的,29,34,36等数值只是为了控制心形在黑框中的位置,并无特殊含义。控制打印速度的代码是
#include <Windows.h>
sleep(150);(延迟150毫秒,即0.15秒)
#include <stdio.h>
#include <Windows.h>
void main(void)
{
int i,j,k;
char b=' ',c='*';
for(i=1;i<=5;i++)
printf("\n");
for(i=1;i<9;)
{
Sleep(150);
for(i=1;i<4;i++)
{
for(j=1;j<41-i*2;j++)
putchar(b);
for(k=1;k<=4*i+1;k++)
putchar(c);
for(j=1;j<=9-4*(i-1);j++)
putchar(b);
for(k=1;k<=4*i+1;k++)
putchar(c);
putchar('\n');
Sleep(150);
}
for(i=1;i<4;i++)
{
for(j=1;j<34;j++)
putchar(b);
for(k=1;k<=29;k++)
putchar(c);
putchar('\n');
Sleep(150);
}
for(i=1;i<3;i++)
{
for(j=1;j<34+i;j++)
putchar(b);
for(k=1;k<=29-2*i;k++)
putchar(c);
putchar('\n');
Sleep(150);
}
for(i=1;i<7;i++)
{
for(j=1;j<36+i*2;j++)
putchar(b);
for(k=1;k<=25-4*i;k++)
putchar(c);
putchar('\n');
Sleep(150);
}
putchar('\n');
}
getchar();
}