用c语言显示金字塔怎么编程序

时间:2025-01-25 14:24:38 游戏攻略

方法一:基本思路

通过嵌套循环来控制输出的行数和空格数。首先输出一行空格,然后输出一行星号,再在下一行输出两个空格,继续输出三个星号,以此类推,最终输出金字塔图形。

```c

include

int main() {

int n = 5; // 金字塔的层数

for (int i = 1; i <= n; i++) { // 控制行数

for (int j = 1; j <= n - i; j++) { // 输出空格

printf(" ");

}

for (int k = 1; k <= 2 * i - 1; k++) { // 输出星号

printf("*");

}

printf("\n"); // 换行

}

return 0;

}

```

方法二:优化代码

计算空格数:

通过计算每行空格数的公式来更简便地实现。

减少循环次数:

通过公式直接计算空格和星号,减少循环次数。

```c

include

int main() {

int n = 5; // 金字塔的层数

for (int i = 1; i <= n; i++) { // 控制行数

int space = n - i; // 每行空格数

for (int j = 1; j <= space; j++) { // 输出空格

printf(" ");

}

for (int k = 1; k <= 2 * i - 1; k++) { // 输出星号

printf("*");

}

printf("\n"); // 换行

}

return 0;

}

```

方法三:输入层数

用户输入金字塔的行数,程序根据输入的层数生成金字塔。

```c

include

int main() {

int rows;

printf("请输入金字塔的行数: ");

scanf("%d", &rows);

for (int i = 1; i <= rows; i++) {

for (int j = 1; j <= rows - i; j++) {

printf(" ");

}

for (int k = 1; k <= 2 * i - 1; k++) {

printf("*");

}

printf("\n");

}

return 0;

}

```

方法四:数字金字塔

用户输入金字塔的层数,程序输出数字金字塔。

```c

include

void pyramid(int n) {

for (int i = 1; i <= n; i++) {

for (int j = 0; j < (n - i); j++) {

printf(" ");

}

for (int k = 1; k <= i; k++) {

printf("%d ", i);

}

printf("\n");

}

}

int main() {

int n;

printf("请输入金字塔的总行数: ");

scanf("%d", &n);

pyramid(n);

return 0;

}

```

这些方法都可以实现金字塔的输出,可以根据具体需求选择合适的方法。