周二打卡

发布时间 2023-04-18 16:47:03作者: 菜鸟de博客

1. 问题描述:
编写程序,输出一个菱形图案。例如,输入行数为5,输出如下菱形:
```
*
***
*****
***
*
```

2. 设计思路:
我们可以分别处理菱形上半部分和下半部分。菱形上半部分为一组由空格和 * 组成的串,且每组中空格数和 * 数之和是固定的,下半部分同理。因此我们可以循环输出。

3. 程序流程图:

 

4. 代码实现:

#include <iostream>
using namespace std;

int main() {
int n;

cout << "请输入行数:";
cin >> n;

for (int i = 1; i <= n; i++) {

for (int j = 1; j <= n - i; j++) {
cout << " ";
}

for (int k = 1; k <= 2 * i - 1; k++) {
cout << "*";
}
cout << endl;
}


for (int i = n - 1; i >= 1; i--) {

for (int j = 1; j <= n - i; j++) {
cout << " ";
}

for (int k = 1; k <= 2 * i - 1; k++) {
cout << "*";
}
cout << endl;
}

return 0;
}