用c++实现打印n阶实心菱形,花型为S、T交替出现STST...,首行为S
时间: 2024-11-22 12:41:50 浏览: 5
在 C++ 中,我们可以使用嵌套循环以及条件判断来实现这个需求。以下是一个简单的示例,它将打印出指定阶数 n 的 S 和 T 交替的实心菱形:
```cpp
#include <iostream>
using namespace std;
void printDiamond(int n, char startChar) {
int width = 2 * n - 1; // 菱形宽度
for (int i = 0; i <= n; ++i) {
// 打印前 n 行 S 或者 T
for (int j = 0; j < width; ++j) {
if (i == 0 || i == n || (i % 2 == 1 && j >= n / 2)) {
cout << startChar;
} else {
cout << ' ';
}
}
cout << endl;
// 如果不是第一行,每向下一行移动,字符交替
if (i != 0) {
startChar = (startChar == 'S') ? 'T' : 'S';
}
// 对于中间的行,需要递减宽度
if (i > 0 && i < n) {
width -= 2;
}
}
}
int main() {
int n;
cout << "请输入菱形的阶数: ";
cin >> n;
printDiamond(n, 'S');
return 0;
}
```
在这个程序中,我们首先计算菱形的总宽度,然后内外两层循环分别控制每一行的字符和列数。对于特定的行和列位置,我们会根据描述打印相应的字符(S 或 T),并在适当的时候切换字符。当到中间部分时,我们会逐渐减少列宽,直到形成对称的 S 和 T。
阅读全文