输入一个字符,输出由这个字符组成等腰三角形
底为5个,高为3个。
输入一个字符
输出由这个字符组成的等腰三角形
*
* *** *****
分析:输入一个字符,把字符作为a,按照要求输出;
输出格式共三层,自顶向下是1、2、3层;
从第3层往上看,可以对比得到(左边)输出的空格分别是0、1、2,
把空格换成x,梅花*换成A,这个等腰三角形则变成了:
????????????????????????xxAxx
????????????????????????xAAAx
????????????????????????AAAAA
在这里,我的思路是,一共三层,每一层有3部分,(左)空格、字符串、(右)空格。
空格的语句是一样的,根据最外层的循环层数?i 的变化,写出输出不同的 j 变量的范围。
字符串也是同理的,大概就是这样。
????????外层变量i 每执行一次,内层循环全部跑完。
然后没加字符串输入,看起来大概是这样。
#include<iostream>
using namespace std;
int main() {
for (int i = 1; i < 4; i++) { // i:1\2\3
//本层左边的空格 2、1、0
for (int j = i; j < 3; j++) {
cout << "x"; //空格基本句
}
//字符分别输出 1,3,5次
for (int t = 0; t < 2*i-1; t++) {
cout <<"A";
}
//本层右边的空格 he左边一样
for (int j = i; j < 3; j++) {
cout << "x"; //空格基本句
}
//换行
cout << endl;
}
return 0;
}
这次最终版: 加字符串的输入、和把改成了空格
#include<iostream>
using namespace std;
int main() {
string str1;
cin >> str1; //输入字符串
for (int i = 1; i < 4; i++) { // i:1\2\3
//本层左边的空格 2、1、0
for (int j = i; j < 3; j++) {
cout << " "; //空格基本句
}
//分别输出 1,3,5次
for (int t = 0; t < 2*i-1; t++) {
cout <<str1;
}
//本层右边的空格 he左边一样
for (int j = i; j < 3; j++) {
cout << " "; //空格基本句
}
//换行
cout << endl;
}
return 0;
}