我的drawRect()函数的行为就好像有一个bug。我正在尝试确定以下代码中是否存在bug,如果不是,则确定我的操作是否不正确。
我正在尝试制作一个在顶部屏幕上显示一个矩形的函数。如果程序员键入"drawRect(3,3)",就会创建一个3 x 3的矩形。但是,如果程序员键入"drawRect(3,4)",则会显示矩形的右上角,然后显示一个无限长的顶部。有人能帮帮我吗?下面是我的代码:
#include <stdio.h>
#include <stdlib.h>
#define SIDES 0xB3
#define TOP_RIGHT 0xBF
#define BOTTOM_LEFT 0xC0
#define TOP_BOTTOM 0xC4
#define BOTTOM_RIGHT 0xD9
#define TOP_LEFT 0xDA
int heightloop;
int widthloop;
int displayrect(int height, int width)
{
printf("%c",TOP_LEFT);
for(widthloop=1;widthloop<width-2;width++)
{
printf("%c",TOP_BOTTOM);
}
printf("%c\n",TOP_RIGHT);
for(heightloop=1;heightloop<height-2;height++)
{
printf("%c",SIDES);
for(widthloop=1;widthloop<width-2;width++)
{
printf(" ");
}
printf("%c\n",SIDES);
}
printf("%c",BOTTOM_LEFT);
for(widthloop=1;widthloop<width-2;width++)
{
printf("%c",TOP_BOTTOM);
}
printf("%c",BOTTOM_RIGHT);
return(0);
}发布于 2011-08-01 19:44:34
在您的循环中,您应该递增widthloop和heightloop而不是width和height。另外,widthloop和heightloop应该初始化为0。
发布于 2011-08-01 19:44:04
像这样的循环:
for(widthloop=1;widthloop<width-2;width++)和:
for(heightloop=1;heightloop<height-2;height++)当width <= 3或height <= 3时将不执行任何操作。
还要注意,widthloop和heightloop实际上应该是局部变量,尽管这本身不是bug,只是“代码气味”。
https://stackoverflow.com/questions/6897864
复制相似问题