例如:
*(空了三格)
***(空了两个)
*****
*******
不妨令n为项数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{ for (j = 1; j <= (n - i); j++)//输入的是前方的空格个数
{printf(" "); }
for (j = 1; j <= (2 * i) - 1; j++)//输入的是星号的个数
{printf("*"); }
printf("\n");
}
return 0;
}
结果如下:
如果是要输入为沙漏型的,如下:
可以分为上面4行输出,下面3行输出,代码大致如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= (4 - i); j++)
{
printf(" ");
}
for (j = 1; j <= (2 * i) - 1; j++)
{
printf("*");
}
printf("\n");
}
for (i = 1; i <= 3; i++)
{
for (j = 1; j <=i; j++)
{
printf(" ");
}
for (j = 1; j <= (-2 * i) + 7; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}