这一题的答案也好像是拼凑的,但每一个步骤还是对的上来,
首先外圈的for是控制层数
然后第二个for是控制每层的空格,空格数就是总层数减当前所在层数,第一层就是3-2,一次递推
然后第三个for让他形成一个直角边在右边的直角三角形,每层加一个星,总星数不超过层数
第四个for就很神奇了,他是在刚才的直角三角形右边加上一个稍小的左边是直角的三角形,如图第一层星为0,第二层为一星,判断表达式不用<=,仅用<,在第一回合就不成立不显示,第二回合就递加
#define _CRT_SECURE_NO_WARNINGS标签:24,putchar,入门,int,明解,每层,length,层数,直角三角形 From: https://blog.51cto.com/u_15866017/5963267
#include <stdio.h>
int main()
{
int length;
puts("让我们来画一个金字塔。");
printf("金字塔有几层: ");
scanf("%d", &length);//3
for (int i = 1; i <= length; i++)
{
for (int j = 1; j <= length - i; j++)//
{
putchar(' ');
}
for (int j = 1; j <= i; j++)
{
putchar('*');
}
for (int j = 1; j < i; j++)
{
putchar('*');
}
putchar('\n');
}
return 0;
}