写一个程序,接受两个整数,让我们称之为h
和w
,并绘制一个矩形,其规格如下:
- 矩形的高度为
h
,宽度为w
。 - 高度
h
表示矩形跨越的行数。 - 宽度
w
表示每行可以包含的最大字符数。第一行和最后一行将分别有w
个可见字符。 - 中间的所有行都只有两个可见字符,一个在行的开头,另一个在行的结尾。
- 可见字符是星号
*
或主题标签#
。 - 每行中使用的可见字符必须在各行之间交替使用。第一行将使用星号,第二行将使用主题标签,第三行将使用星号,依此类推。
#include <stdio.h>
void draw_rectangle(int h, int w) {
for (int i = 0; i < h; i++) {
if (i == 0 || i == h - 1) { // first and last rows
for (int j = 0; j < w; j++) {
printf("*");
}
} else { // rows in between
if (i % 2 == 0) {
printf("#");
for (int j = 0; j < w - 2; j++) {
printf(" ");
}
printf("#");
} else {
printf("*");
for (int j = 0; j < w - 2; j++) {
printf(" ");
}
printf("*");
}
}
printf("\n");
}
}
int main() {
draw_rectangle(5, 10);
return 0;
}
预期输出:
Run1
5 10
**********
# #
* *
# #
**********
Run2
7 4
****
# #
* *
# #
* *
# #
****
Run3
8 2
**
##
**
##
**
##
**
##
Run4
6 6
******
# #
* *
# #
* *
######
当前输出:
Run1
5 10
**********
* *
# #
* *
**********
Run2
7 4
****
* *
# #
* *
# #
* *
****
Run3
8 2
**
**
##
**
##
**
##
**
Run4
6 6
******
* *
# #
* *
# #
******
1条答案
按热度按时间t9eec4r01#
发布的代码没有遵循问题的要求,所以它没有产生预期的输出:
请注意,打印预期图案的替代算法为