画矩形:
根据输入的四个参数:a,b,c,fa,b,c,f 参数,画出对应的矩形。
前两个参数 a,ba,b 为整数,依次代表矩形的高和宽;
第三个参数 cc 是一个字符,表示用来填充的矩形符号;
第四个参数 ff 为整数,00 代表空心,否则代表实心。
具体例子请见样例。
输入
第一行:a,b,c,fa,b,c,f。
输出
一个矩形。
示例:
示例 1:
输入:
7 7 @ 0
输出:
@@@@@@@
@ @
@ @
@ @
@ @
@ @
@@@@@@@
提示:
3≤a≤1003≤a≤100。
5≤b≤1005≤b≤100。
cc 是一个可见的字符。
0≤f≤1000≤f≤100。
代码如下:
#include <stdio.h>
int main() {
int a, b, f; // a:高 b:宽 f:空心/实心标识
char c; // 填充字符
// 1. 输入参数(处理字符输入的缓冲区问题)
printf("请输入矩形的高、宽、填充字符、类型(0空心/非0实心),用空格分隔:\n");
// 注意:%c前加空格,跳过输入时的空格/换行符
if (scanf("%d %d %c %d", &a, &b, &c, &f) != 4) {
printf("输入格式错误!\n");
return 1;
}
// 2. 验证参数合法性(高和宽至少为2,否则无法形成空心矩形)
if (a < 2 || b < 2) {
printf("矩形的高和宽必须大于等于2!\n");
return 1;
}
// 3. 绘制矩形
for (int i = 0; i < a; i++) { // 遍历每一行(高)
for (int j = 0; j < b; j++) { // 遍历每一列(宽)
// 实心:所有位置都填充字符
if (f != 0) {
printf("%c", c);
}
// 空心:只填充边框(第一行/最后一行/第一列/最后一列)
else {
if (i == 0 || i == a-1 || j == 0 || j == b-1) {
printf("%c", c);
} else {
printf(" "); // 内部填充空格
}
}
}
printf("\n"); // 每行结束换行
}
return 0;
}
运行结果如下:
(一)空心矩形:
(二)非空心矩形: