#信息学奥赛一本通
题目描述
打印下面两种图形的其中一种:正方形、菱形。
输入
第一行一个大写字母,表示输出图形的类型,'Z '表示正方形,'L '表示菱形;
第二行一个正整数x (1≤x≤100 ),表示输出图形的边长。
输出
参考样例,输出相应的图形。
样例输入
L
4
样例输出
*
***
*****
*******
*****
***
*
分析一下这个题目,它有两个选择,所以可以进行if语句的执行
#include<bits/stdc++.h>
using namespace std;
int main(){
char A;
int a;
cin >> A >> a;
if(A=='Z'){
}
else if(A=='L'){
}
return 0;
}
接下去再深入用for循环解两个:矩形和正方形。
for(int i=0;i<a;i++){
for(int j=0;j<a;j++){
printf("*");
}
printf("\n");
}
}
for(int i=-a+1;i<a;i++){
for(int j=0;j<abs(i);j++) printf(" ");
for(int j=0;j<2*a-2*abs(i)-1;j++) printf("*");
printf("\n");
}
完整的代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
char A;
int a;
cin >> A >> a;
if(A=='Z'){
for(int i=0;i<a;i++){
for(int j=0;j<a;j++){
printf("*");
}
printf("\n");
}
}
else if(A=='L'){
for(int i=-a+1;i<a;i++){
for(int j=0;j<abs(i);j++) printf(" ");
for(int j=0;j<2*a-2*abs(i)-1;j++) printf("*");
printf("\n");
}
}
return 0;
}
谢谢大家的观看