返回 课程
信奥AC之路-2级
0% 完成
0/0 步骤
-
第一课:字符5 主题|小节
-
第二课 嵌套循环与矩形图案(一)4 主题|小节
-
第三课 嵌套循环与矩形图案(二)3 主题|小节
-
第四课:矩形三5 主题|小节
-
第五课:字符矩形7 主题|小节
-
第六课:直角三角形6 主题|小节
-
第七课:倒三角形7 主题|小节
-
第八课:字符三角形8 主题|小节
-
第九课:字符倒三角形7 主题|小节
-
第十课:平行四边形6 主题|小节
-
第十一课:字符直角三角形5 主题|小节
-
第十二课:左斜三角形6 主题|小节
-
第十三课:等腰三角形6 主题|小节
-
第十四课:倒置等腰三角形7 主题|小节
-
第十五课:上下对称图形4 主题|小节
-
第十六课:复杂对称图形5 主题|小节
-
第十七课:左右对称图形5 主题|小节
-
第十八课:空心图形5 主题|小节
-
第十九课:空心图形3 主题|小节
-
第二十课:嵌套应用4 主题|小节
-
第二十一课:嵌套应用二4 主题|小节
-
第二十二课:嵌套应用三3 主题|小节
-
第二十三课:嵌套应用四3 主题|小节
课 进展
0% 完成
16.2.1 标准菱形
题目描述:输入一个正整数n,输出一个由字符’A’组成的菱形,n表示菱形的高度(必须是奇数)。
样例输入:
5
样例输出:
A
AAA
AAAAA
AAA
A
代码实现:
int n;
cin>>n; // 读入菱形的总高度n
int m=(n+1)/2; // 计算菱形上半部分的高度m
// 打印菱形的上半部分(正三角形)
for(int i=1;i<=m;i++){
// 打印每行前面的空格
for(int j=1;j<=m-i;j++){
cout<<' ';
}
// 打印每行的字符'A',数量为i*2-1(奇数序列:1,3,5...)
for(int j=1;j<=i*2-1;j++){
cout<<'A';
}
cout<<endl; // 换行
}
// 打印菱形的下半部分(倒三角形)
for(int i=m-1;i>=1;i--){
// 打印每行前面的空格
for(int j=1;j<=m-i;j++){
cout<<' ';
}
// 打印每行的字符'A',与上半部分对应行相同
for(int j=1;j<=i*2-1;j++){
cout<<'A';
}
cout<<endl; // 换行
}
思考:
- 这个菱形由两部分组成:上半部分是一个正三角形,下半部分是一个倒三角形
- 上半部分:每行前面的空格数等于m-i,字符数等于i*2-1(奇数序列:1,3,5…)
- 下半部分:与上半部分结构相似,但循环变量i从m-1递减到1
- 保证输入n是奇数,这样才能得到完美的菱形(中间行字符数最多)
- 这种结构创建了一个典型的菱形,上下对称,中间最宽