2013-10-18 2 views
0

중공 사각을 인쇄하려고합니다. 하지만 인쇄가 제대로되지 않습니다. 이것은 내가 지금까지 가지고있는 것이다. 빈 직사각형이 아니라 인쇄합니다. COUNTER2는 폭 간다사각형 인쇄를 비우려면 어떻게해야합니까?

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

(50) 사이 1. 임의의 정수를 만들지 만, 당신은 높이와 비교하고, 여기에 솔루션을위한 적절한 루프 :

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;