例如
输入:5
输出:
# ### ##### ### #
显然要用循环,那么如何使用呢?
把行数n看作常数,再用某个变量去遍历每一行,在每一行中使用另一个变量去打印每一行的内容。或许捋清各个变量的关系会略微麻烦。
先定义三个变量n,j,i,n作为总行数,j可以遍历每一行,然后用i去逐一打印每一行的空格和字符。
自己写的代码如下
#include<stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
int i, j;//n为总行数长数,j从第一行遍历,i考察每一行
int n = 9;
for (j = 1; j <= (n + 1) / 2; j++)//首先从中间的一行为基准,将问题考虑成打印上下俩三角
{
for (i = 0; i < (n + 1) / 2 - j; i++)//打印每一行空格
{
printf(" ");
}
for (i = 0; i < 2 * j - 1; i++)//打印每一行字符
{
printf("%c", ch);
}
printf("\n");
}//遍历上三角每一行
for (j = 1; j <= (n - 1) / 2; j++)
{
for (i = 0; i < j; i++)
{
printf(" ");
}
for (i = 0; i < n - 2 * j; i++)
{
printf("%c", ch);
}
printf("\n");
}
return 0;
}
在真正写的时候我自己容易纠结每个变量的职能,导致犹豫半天,或许这时先把能写的随便找个字母替代,在接着写会比较好吧(取好变量名真重要)。