金字塔,效果图如下
代码如下:
#include<stdio.h>
int main() {
int a, b;
for (a = 1; a <= 4; a++) {
for (b = 1; b <= 4 + a - 1; b++) {
if (b <= 4 - a)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}
这段代码通过两个嵌套的for
循环来打印一个由空格和星号组成的金字塔图案,在内层循环中,if
语句检查b
是否小于或等于4 - a
。如果是,则打印一个空格,否则,打印一个星号。随着a
的增加,每一行的星号数量会递增,而空格数量会递减。
现在不妨大家想想看,a和b分别都代表了什么?
答:a代表了在创建金字塔时,循环走过的行数,b会根据这个行数确定输出的是空格,还是星号,执行完一次内部的循环,那么就自动换到下一行。
那么我们不只是要搭建这一个金字塔,我还要更多,我想自己创多少行就多少行,怎么办?
答:我们可以使用scanf函数,将行数输入,自然也就能想创建多少行就能多少行了。
代码如下:
#include<stdio.h>
int main() {
int a, b, c;
printf("请输入你的金字塔的行数:");
scanf("%d",&c);
for (a = 1; a <= c; a++) {
for (b = 1; b <= c + a - 1; b++) {
if (b <= c - a)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}
这个c就是我们要输入的金字塔的行数。
特别注意:scanf("%d",&c"); c前必须加&!否则运行不了!