如何实现:输入一个数,以星号打印出一个三角形,如输入..
例如:输入4,然后显示("="为空格):
===*
==*=*
=*===*
*******
说说我的思路(以输入数字4为例):
1,首先输出左边的空格(=),随后加上一个*:
===*
==*
=*
*
2,从第二行开始到倒数第二行结束(也就是2,3行),输出空格(=),输出完毕后,
从第二行开始到最后一行(2,3,4行)加上一个*:
=*
===*
?????*
经过以上两部,完成的图案只剩下问号(?)部分:
===*
==*=*
=*===*
*?????*
3,这步解决上图中的"?"
以下是我写的一个方法,在VC6通过测试
个人感觉十分臃肿,请教各位有没有更简单易懂的方法!
#include <stdio.h>
void main()
{
int i,j,k,m,num;
scanf("%d",&num);
for (i=1;i<=num;i++)
{
for (j=1;j<=num-i;j++)
{
printf(" ");
}
printf("*");
if (i!=1)
{
if (i!=num)
{
for (k=1;k<=2*i-3;k++)
{
printf(" ");
}
}
else
for (m=1;m<=2*num-3;m++)
{
printf("*");
}
printf("*");
}
printf("\n");
}
}