题目描述 给定一个长方形的长和宽(均为不小于1的正整数),以及一个可显示字符,用该字符在屏幕上画出该长方形不是正方形(空心) 输入 由多行组成,每一个包括两个整数和一个字符,分别表示长,宽和填充字符 输出 对每一行输出一个长方形 用高效的函数写出代码,要求代码简洁高效
时间: 2024-12-14 20:28:43 浏览: 12
要根据给定的长和宽以及指定的填充字符,在屏幕上打印非正方形的长方形,你可以使用嵌套循环来遍历矩形的每个位置,然后判断当前位置是否在外围,如果是外围则打印指定字符,否则打印空格。以下是一个C语言的函数实现:
```c
#include <stdio.h>
// 定义一个函数绘制长方形
void draw_rectangle(int length, int width, char fill_char) {
for (int i = 0; i <= length; ++i) { // 上下边界
for (int j = 0; j < width - 2; ++j) { // 左右边界内
printf("%c", fill_char); // 填充字符
}
if (i == 0 || i == length) { // 第一行或最后一行只打印上下边界的字符
printf("%c\n", fill_char);
} else {
printf(" %c ", fill_char); // 中间行打印边框外的空格
}
}
}
int main() {
int input_length, input_width;
char fill_char;
while (scanf("%d %d %c", &input_length, &input_width, &fill_char) == 3) { // 输入读取
draw_rectangle(input_length, input_width, fill_char); // 绘制长方形
printf("\n"); // 换行
}
return 0;
}
```
这个函数`draw_rectangle`接受三个参数:长、宽和填充字符,它先处理长方形的上、下边界,然后处理内部的宽度减去两个的位置,以确保只有外部打印填充字符,而中间的行打印边框外的空格。`main`函数中不断从标准输入获取用户输入并调用这个函数。
阅读全文