输入格式:
输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。
输出格式:
输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
a a
a a
a a
aaaaaaaaaa
1、解题思路
(1)行数row是列数col的50%,并且需要四舍五入,即row=col/2,当col为偶数是,row为整数,当col为奇数时,row为浮点数,四舍五入后row=col/2+1,;
(2)分析图形特征:正方形第一行和最后一行输出col个字符,中间1~row-2行先输出一个字符,再输出col-2 个空格,最后输出一个字符,换行。
代码如下:
#include<cstdio>
int main(){
int n;
char c;
scanf("%d %c",&n,&c);
int col=n;
int row;
if(col%2==0) row=col/2;
else row=col/2+1;
for(int i=0;i<col;i++){
printf("%c",c);
}
printf("\n");
for(int i=1;i<=row-2;i++){
printf("%c",c);
for(int j=0;j<col-2;j++){
printf(" ");
}
printf("%c",c);
printf("\n");
}
for(int i=0;i<n;i++){
printf("%c",c);
}
return 0;
}
2、总结
1、要注意行数的计算。