解题思路:
- 本题非常简单,把第一行和最后一行单独打印,中间循环打印即可;
- 本题考点,输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整);
- 注意行数的求算的四舍五入即可;
- 本题对求得浮点数加上0.5,再对数取整,即可获得四舍五入后的值。
#include <stdio.h>
//打印第一行和最后一行的a
void printCh(int n, char ch) {
int i;
for (i = 0; i < n; i++) {
printf("%c", ch);
}
printf("\n");
}
//打印中间行的a
void print(int n, char ch) {
int i;
printf("%c", ch);
for (i = 1; i < n - 1; i++) {
printf(" ");
}
printf("%c\n", ch);
}
int main() {
int n, i, k;
char ch;
scanf("%d %c", &n, &ch);
printCh(n, ch);
//关键步骤:对输入的数取一半后四舍五入
k = (int)((n / 2.0) + 0.5);
for (i = 1; i < k - 1; i ++) {
print(n, ch);
}
printCh(n, ch);
return 0;
}