
c++实现:“z”字用三个循环存入矩阵,每个循环都把当前的最后行/斜线的最后一个符号“*”带上,或者不带。
#include<stdio.h>
#include<iostream>
#include<sstream>
#include<vector>
#include<string>
using namespace std;
int main() {
int n;
cin >> n;
vector<vector<char>> matrix(n+1, vector<char>(2*n+3, ' '));
int i = 0,j=0;
for (j = 4; j < 2 * n + 3; j += 2)
{
matrix[i][j] = '*';
}
j -= 2;
for (; i < n; i++, j-=2)
{
matrix[i][j] = '*';
}
i--;
j += 2;
for (; j < 2*n+3; j += 2)
{
matrix[i][j] = '*';
}
i = 1, j = 0;
for (; j < 2 * n -1; j += 2)
{
matrix[i][j] = '*';
}
j -= 2;
for (; i <= n; i++, j -= 2)
{
matrix[i][j] = '*';
}
i--;
j += 2;
for (; j < 2 * n -1; j += 2)
{
matrix[i][j] = '*';
}
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < 2*n+3-2*i; j++)
{
cout << matrix[i][j];
}
cout << endl;
}
for (int i = 0; i < 2 * n + 3; i++)
{
cout << matrix[n - 1][i];
}
cout << endl;
for(int i = 0; i < 2 * n -1; i++)
{
cout << matrix[n][i];
}
cout << endl;
return 0;
}