编写一个C++函数模块(包含调用语句)实现如下菱形图案的打印,要求:该函数模块需有两个输入,第一个输入表示用什么符号填充(下面的示例用的是‘*’号填充),第二个输入为控制菱形的大小(用菱形的宽表示)(下面的示例中菱形的宽度为11)
时间: 2024-09-28 09:04:03 浏览: 16
在C++中,你可以编写一个名为`printDiamond`的函数来实现这个功能。首先,我们需要一个模板函数,接受两个模板参数:一个是字符类型用于填充菱形,另一个是整数类型代表菱形的宽度。以下是函数的实现:
```cpp
#include <iostream>
template <typename Char, size_t Size>
void printDiamond(Char fillChar, size_t width) {
// 处理较小的宽度,防止数组越界
if (width <= 1) return;
// 打印上半部分菱形
for (size_t i = 0; i < width; ++i) {
// 第一行和最后一行只有一列
if (i == 0 || i == width - 1)
std::cout << fillChar * (width - 1);
else
std::cout << fillChar << " " << fillChar << " ";
std::cout << std::endl;
}
// 打印下半部分菱形
// 高度减一,并从中间开始向两边递减
for (size_t i = width - 2; i > 0; --i) {
std::cout << fillChar << " " << fillChar << " ";
for (size_t j = 2; j <= i; ++j)
std::cout << fillChar << " ";
std::cout << std::endl;
}
}
int main() {
// 调用函数,打印'*'填充、宽度为11的菱形
printDiamond('*', 11);
阅读全文