问题描述 输入正整数n,输出由数字组成的漏斗形图案。 输入描述 输入一个1到9之间的整数n。 输出描述 输出2*n-1行由数字构成的图形。 样例输入 3 样例输出 33333 222 1 222 33333 用c语言编写
时间: 2024-01-17 13:02:52 浏览: 210
以下是用 C 语言编写的程序,实现输出数字组成的漏斗形图案:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for (int i = n; i >= 1; i--) { // 输出上半部分漏斗
for (int j = 1; j <= n - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("%d", i);
}
printf("\n");
}
for (int i = 2; i <= n; i++) { // 输出下半部分漏斗
for (int j = 1; j <= n - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("%d", i);
}
printf("\n");
}
return 0;
}
```
程序的主要思路是先输入一个整数 `n`,然后按照题目要求输出漏斗形图案。具体来说,我们可以分为两部分分别输出上半部分漏斗和下半部分漏斗。
对于上半部分漏斗,我们可以用两个循环分别控制输出空格和数字,核心代码如下:
```c
for (int i = n; i >= 1; i--) { // 输出上半部分漏斗
for (int j = 1; j <= n - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("%d", i);
}
printf("\n");
}
```
对于下半部分漏斗,我们可以类似地用两个循环分别控制输出空格和数字,核心代码如下:
```c
for (int i = 2; i <= n; i++) { // 输出下半部分漏斗
for (int j = 1; j <= n - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("%d", i);
}
printf("\n");
}
```
需要注意的是,我们在输出数字时,每个数字都要输出 `2 * i - 1` 次,这是为了保证漏斗形图案的对称性。
阅读全文