c++写代码 【问题描述】编程打印用数字构成的菱形图案,菱形上半部分的行数n( 1<n<10 )从键盘输入,总行数为2n-1。图案的样式按下面的样例。 【输入形式】从键盘输入包括中间一行在内的菱形上半部分的行数n ( 1<n<10 )。 【输出形式】输出用数字构成的菱形图案,样式按下面的样例,其中各数字间用1个空格间隔,最中间最长的一行的起始数字1位于第1列。 【样例输入】4 【样例输出】 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1
时间: 2024-03-24 14:35:46 浏览: 52
以下是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
// 上半部分
for (int i = 1; i <= n; i++) {
// 打印空格
for (int j = 1; j <= n - i; j++)
cout << " ";
// 打印数字
for (int j = 1; j <= 2 * i - 1; j++)
cout << j << " ";
cout << endl;
}
// 下半部分
for (int i = n - 1; i >= 1; i--) {
// 打印空格
for (int j = 1; j <= n - i; j++)
cout << " ";
// 打印数字
for (int j = 1; j <= 2 * i - 1; j++)
cout << j << " ";
cout << endl;
}
return 0;
}
```
解析:
首先,我们读入菱形的上半部分行数 `n`。
接着,我们用两个循环来打印菱形上半部分,外层循环控制行数,内层循环控制每一行的空格和数字。
在内层循环中,我们首先打印空格,打印的个数为 `n-i`,其中 `i` 是当前行数。然后,我们打印数字,打印的个数为 `2*i-1`,即在当前行的中心位置打印数字。
打印完上半部分后,我们用类似的方法打印下半部分。注意,下半部分的行数为 `n-1`,并且行数是递减的。
阅读全文