写一个程序显示如下的金字塔树,从键盘输入层数。
树有一系列逐渐增加的层构成。上面显示的树有3层。
**输入提示信息:“请输入树的层数:”
**输入格式要求:“%d”
(注意:每行左侧的空格数与n的数量有关,例如:如果是2层,最多一行会有5个*,则第一行开始会空出2个空格,第二行开始会空出一个空格,而5个*的那一行不空。|的左侧空两个空格。
另外,最后一行的V两侧的=的数量也与层数n相等)
完整代码:
#include<stdio.h>
int main(){
int n;
int i , j,k;
int kb;
char s=' ';
printf("请输入树的层数:");
scanf("%d",&n);
for(i=1 ; i<=n ;i++){ //第i节树
kb = n; // 每次打印一节就得重置空白的个数
for(j = 1;j<=i+1; j++ ) //第i节树的第j层
{
for(k=1;k<=kb;k++){
printf(" ");//打印第i节树的第j层的kb个空格
}
for(k=1;k<=2*j-1;k++){//打印第i节树的第j层的k个*
printf("*");
}
kb--;
printf("\n");
}
}
for(k = 1;k<=n; k++ ){
printf(" ");//打印树根的n个空格;
}
printf("|\n");
for(k = 1;k<=n;k++){
printf("=");
}
printf("V");
for(k = 1;k<=n;k++){
printf("=");
}
printf("\n");
}
运行结果如下
c语言习题练习