0

中空の長方形を印刷しようとしています。しかし、それは正しく印刷されません。これは私がこれまでに持っているものです。印刷されますが、中空の長方形ではありません。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");
}
4

2 に答える 2

0

コードには別の問題もあります。長方形の高さと幅は 0 から 49 の間になります。rand() は 0 から RAND_MAX の間の数値を返します。次の修正により、1 から 50 までの乱数が生成されます。

int height = rand() % 50 + 1;
int width = rand() % 50 + 1;
于 2013-10-18T02:12:29.120 に答える
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");
}

注 - これは最適な解決策ではありませんが、サンプルに基づいて演習を行おうとしている場合は問題ありません。

于 2013-10-18T00:58:47.800 に答える