开发环境:VC6
/*
功能:输出一个等边三角形(由*拼接),实心或空心,连长为n
*/
#include <stdio.h>
/*
将str重复输出len遍
*/
void Print(char str[], int len)
{
while(len-- > 0)
printf("%s", str);
}
/*
功能: 输出长度为n的等边三角形
n: 三角形长度
bSolid: 三角形是否为实心
*/
void display(int n, int bSolid)
{
int i;
for(i = 1; i <= n; i++)
{
Print(" ", n-i);
if(bSolid == 0 && i >= 3 && i < n) // 空心输出法
{
Print("* ", 1);
Print(" ", i - 2);
Print("* ", 1);
}
else // 实心输出法
{
Print("* ", i);
}
printf("\n");
}
}
int main()
{
int i = 1;
while(i <= 10)
{
printf("i = %d\n", i);
display(i, 0); // 空心
printf("\n");
display(i, 1); // 实心
printf("\n");
i++;
}
return 0;
}
运行结果:
i = 1
*
*
i = 2
*
* *
*
* *
i = 3
*
* *
* * *
*
* *
* * *
i = 4
*
* *
* *
* * * *
*
* *
* * *
* * * *
i = 5
*
* *
* *
* *
* * * * *
*
* *
* * *
* * * *
* * * * *
i = 6
*
* *
* *
* *
* *
* * * * * *
*
* *
* * *
* * * *
* * * * *
* * * * * *
i = 7
*
* *
* *
* *
* *
* *
* * * * * * *
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
i = 8
*
* *
* *
* *
* *
* *
* *
* * * * * * * *
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
i = 9
*
* *
* *
* *
* *
* *
* *
* *
* * * * * * * * *
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
i = 10
*
* *
* *
* *
* *
* *
* *
* *
* *
* * * * * * * * * *
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *