【发布时间】:2013-10-07 20:21:24
【问题描述】:
我需要创建一个空心矩形,但我只能使用一个循环。该程序按原样工作,但我在代码中使用了两个循环,不知道如何继续减少最后一个循环。 (我们只学习了 printf、scanf、if/else 和循环,所以没有数组等) 程序扫描框架的高度、宽度和厚度。
谁能给我指出正确的方法?
代码如下:
row = 0;
while(row < height)
{
column = 0;
while(column < width)
{
if(thickness > row) // upper border
{ printf("*");};
if( some conditions ) // left border
{ printf("*");};
if( conditions ) // hollow
{ printf(" ");};
if( conditions ) // right border
{ printf("*");};
if( conditions ) // bottom border
{ printf("*");};
column++;
};
puts("");
row++;
};
【问题讨论】:
-
为什么
if的每个}后面都多了一个分号? -
@hacks,它们就在那里,语言不需要,我想他只是把它们放进去。
-
任何给定的 mxn "grid" 都可以被认为是一个单独的字符串,即 mxn,因为您使用的是 printf,我建议将每一行视为一个字符串块。字符串的第一部分和最后一部分都是“”,而中间部分大部分是“”......所以实际上你可以只使用 2 个字符串“*****”和“ * " 并检查它是否是第一行/最后一行。
-
顺便说一下,如果您将发布您的完整代码,那么它将帮助我们回答。
-
你能使用AND、OR等逻辑运算符吗?