这个字母塔主要由三部分组成:
一、换行
二、空格(用“0”代替)
三、字母:(字母又可由红线分成两部分)左半边和右半边
这是我第一次写的代码:(红色部分有问题)
#include <stdio.h>
void main()
{
int i,j; //i代表行数,j代表空格
char c; //c代表字母
for(i = 0;i < 26;++i) //这个for循环控制换行
{
for(j = 1;j <26 - i;++j)
{
printf(" ");
}
for(c = 'A';c <= 'A'+ i-1;++c)
{
printf("%c",c);
}
for(c = 'A';c >j;--c)
{
printf("%c",c+i );
}
printf("\n");
}
}
运行结果如图:
红色代码中的for循环的循环因子初始化c='A'是个定值,且循环结束条件给的有问题,所以导致运行结果有错。
#include <stdio.h>
void main()
{
int i,j; //i代表行数,j代表空格
char c = 'A' ; //c代表字母,并赋初值为A“”
for(i = 0;i < 26;++i) //这个for循环控制换行
{
for(j = 1;j < 26 - i;++j) //这个for循环控制每行的空格
{
printf(" ");
}
for(j = 0;j <= i;++j) //这个for循环控制字母塔的左半边字母的显示
{
printf("%c",c + j); //以第三行为例:当最后一次循环执行完,此时的j的值为“D”
}
for(j = j - 2;j >= 0;j--) //这个for循环控制字母塔的左半边字母的显示
{ //右半边的每行首字母与每行左半边最后一个字母有关以第三行为例,此时右边的第 一个字母为“B”,与j的关系就是“j-2”
printf("%c",c + j);
}
printf("\n"); //每行的空格和字母的循环结束后,才进行换行
}
}
运行结果如图: