2013-10-18 94 views
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"); 
} 

回答

0

之間計數器2無二的寬度,但你有高度的比較吧,這裏是你的解決方案正確的循環:

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"); 
} 

注 - 不是最佳的解決方案,但如果你試圖根據樣本進行一些練習 - 它確定

0

你的代碼還有另一個問題。矩形的高度和寬度將在0到49之間。rand()將返回0到RAND_MAX之間的數字。以下更正將產生1到50之間的隨機數。

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