如何将矩形打印为空?

时间:2013-10-18 00:47:00

标签: c rectangles

我试图打印一个空心矩形。但它打印不正确。这就是我到目前为止所拥有的。它打印但不是空心矩形。它使随机整数在50和1之间。

void randomRectangle(){

srand(time(NULL));

int counter = 0;
int counter2 = 0;
int height = rand() % 50;
int width = rand() % 50;


printf("Now printng a rectangle.\n");
printf("Height = %d\n" "Width = %d\n", height, width);

while(counter < height){
counter++;
counter2 = 0;
        while(counter2 < width){
                if (((counter2 > 1)&&(counter2 < height))&&((counter > 1)&&(counter < height))){
                printf("  ");
                }
                else if((counter2 != 0)&&(counter != 0)){
                printf("* ");
                }

counter2++;
}
printf("\n");
}

2 个答案:

答案 0 :(得分:0)

counter2适用于宽度,但你要将它与高度进行比较,这是适合你的解决方案:

while(counter < height)
{
    counter2 = 0;
    while(counter2 < width)
    {
        if ( ((counter > 0)&&(counter < (height-1))) && ((counter2 > 0)&&(counter2 < (width-1))) )
            printf("  ");
        else
            printf("* ");
        counter2++;
    }
    counter++;
    printf("\n");
}

注意 - 这不是最佳解决方案,但如果您尝试根据样本进行一些练习 - 那就好了

答案 1 :(得分:0)

您的代码还有另一个问题。矩形的高度和宽度将介于0和49之间.rand()将返回介于0和RAND_MAX之间的数字。以下更正将产生1到50之间的随机数。

int height = rand() % 50 + 1;
int width = rand() % 50 + 1;