C语言打印空心数字金字塔
时间: 2023-12-05 10:38:45 浏览: 141
以下是C语言打印空心数字金字塔的代码实现:
```c
#include <stdio.h>
void hollow_pyramid(int n) {
int i, j, k;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
printf("%d", i);
for (k = 1; k <= 2 * i - 3; k++) {
printf(" ");
}
if (i != 1) {
printf("%d", i);
}
printf("\n");
}
}
int main() {
int n;
printf("请输入一个正整数n(1<=n<=9):");
scanf("%d", &n);
hollow_pyramid(n);
return 0;
}
```
运行结果如下(以输入n=5为例):
```
1
2 2
3 3
4 4
5 5
```
相关问题
用c语言打印空心字母金字塔
在C语言中,打印空心字母金字塔通常通过循环和嵌套循环来实现。下面是一个简单的例子,展示如何打印一个由星号(*)组成的空心正方形,你可以根据需要替换星号为其他字符,比如字母。
```c
#include <stdio.h>
#define ROWS 5 // 定义金字塔的行数
void print_pyramid(char ch) {
int i, j;
for (i = 1; i <= ROWS; i++) {
// 打印上半部分的星号
for (j = 1; j <= ROWS - i; j++)
printf(" "); // 空格用于保持对齐
for (j = 1; j <= 2 * i - 1; j++)
printf("%c", ch); // 星号
printf("\n"); // 换行
// 如果不是第一行,打印下半部分的星号
if (i != 1) {
for (j = 1; j <= i - 1; j++)
printf(" "); // 左侧空格
for (j = i - 1; j >= 0; j--)
printf("%c", ch); // 逐步减小的星号从中间开始
printf("\n");
}
}
}
int main() {
print_pyramid('*'); // 使用星号作为字符
return 0;
}
使用c语言编写空心数字金字塔
好的,我可以回答这个问题。以下是一个使用C语言编写的空心数字金字塔的代码示例:
```
#include <stdio.h>
int main() {
int rows, i, j, space, k = 0;
printf("请输入金字塔的行数:");
scanf("%d", &rows);
for (i = 1; i <= rows; ++i, k = 0) {
for (space = 1; space <= rows - i; ++space) {
printf(" ");
}
while (k != 2 * i - 1) {
if (k == 0 || k == 2 * i - 2 || i == rows) {
printf("%d ", i);
} else {
printf(" ");
}
++k;
}
printf("\n");
}
return 0;
}
```
这个程序会要求用户输入金字塔的行数,然后使用嵌套的循环来打印出金字塔的形状。其中,外层循环控制行数,内层循环控制每一行的空格和数字的输出。在内层循环中,我们使用了一个变量k来控制数字的输出,如果k等于0或者2*i-2或者i等于rows,就输出数字i,否则输出空格。这样就可以实现空心数字金字塔的效果了。
阅读全文