使用二维数组处理图案模拟问题
第一步:根据题干给出的条件,确定数组的范围。
第二步:将所有区域填充空格(二重循环)
第三步:从下向上填充符号。
举例
下底边长是h+2*(h-1)=3*h-2,高度为h,因此数组的范围为arr[0][0]~arr[h-1][3h-3].
#include<stdio.h>
#include<stdbool.h>
#include<iostream>
#include<algorithm>
using namespace std;
char arr[1000][3000];
int main() {
int h;
cin >> h;
while (h < 1 || h>1000)
cin >> h;
for (int i = 0; i < h; i++)
for (int j = 0; j < 3 * h -2; j++)
arr[i][j] = ' ';
int begin = 0;
for (int i = h - 1; i >= 0; i--) {
for (int j = begin; j < 3 * h - 2; j++)
arr[i][j] = '*';
begin += 2;
}
for (int i = 0; i < h; i++)
{
cout << arr[i];
cout << endl;
}
system("pause");
return 0;
}