分析:
① 输入三角形主要分为两部分,
即输出空格和输出星号,要将它们分开,不用考虑空格数和星号个数之间的关系。
② 从每行输出的空格个数来看,若总共输出n行,则第i行首先要输出n - i个空格,然后再输出星号。
③ 从每行输出的星号个数来看,每行输出星号的个数是一个首项为1、公差为2的等差数列,
等差数列的公式为:an=a1+(n -1) d即第i行要输入的星号个数为1+(i -1)×2=2×i -1。
④ 编程时我们只需要考虑星号和星号左边的空格即可。星号右边的空格不用考虑。
当遇到N的情况,不知道如何下手,可以先给N赋一个值,从具体的事物开始分析,最后会得到抽象的结果。
【程序代码】
/*
#include <stdio.h>
int main(void)
{
//固定行数,5行
for(int j=0; j<5; j++)
{
//左边的空格
for(int z=0; z<5-j; z++)
{
printf(" ");
}
//右边的星星
for(int i=0; i<1+2*j; i++)
{
printf("*");
}
printf("\n");
//对每一行,将左边的空格加上星星,就是图形
}
return 0;
}
*/
#include <stdio.h>
int main(void)
{
int n=0; //存储行数
int i, j; //行循环变量i,空格和星号循环变量
printf("请输入行数:");
scanf("%d", &n);
//行数由用户输入的n决定
for(i=0; i<n; i++)
{
//左边的空格
for(j=0; j<n-i; j++)
{
printf(" ");
}
for(j=0; j<1+(i-1)*2; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}