利用for循环嵌套实现功能,整体看成一个大正方形
空格:0 1 2 3 4
*: 9 7 5 3 1 得出关系 2*空格=9
i为空格,j为*
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i,j;
for(i=1;i<=9;i+=2)
{
for(j=1;j<=(9-i)/2;j++)
{
printf(" ");
}
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
最终实现结果为:
ubuntu@ubuntu:20221103$ gcc 6_金字塔.c
ubuntu@ubuntu:20221103$ ./a.out
*
***
*****
*******
*********
拓展:输入任意金字塔行数:
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a,i,j;
printf("请输入你想要的金字塔行数>>>");
scanf("%d",&a);
for(i=1;i<=2*a-1;i+=2)
{
for(j=1;j<=(2*a-1-i)/2;j++)
{
printf(" ");
}
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
结果如下:
ubuntu@ubuntu:20221103$ ./a.out
请输入你想要的金字塔行数>>>5
*
***
*****
*******
*********
ubuntu@ubuntu:20221103$ ./a.out
请输入你想要的金字塔行数>>>9
*
***
*****
*******
*********
***********
*************
***************
*****************
ubuntu@ubuntu:20221103$ ./a.out
请输入你想要的金字塔行数>>>4
*
***
*****
*******