반복 반복 및 논쟁과 관련하여 숙제에 대한 도움을받을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/621483

  •  05-07-2019
  •  | 
  •  

문제

좋아, 그래서 나는 출력을 별표의 다이아몬드처럼 보이게해야하며, 중간에 9 개의 별표가있을 때까지 각 행에 2 개의 별표가 증가하고 행이 줄어 듭니다. 기능 메인은 다음과 같아야합니다.

int main (void){  
   int i;    
   i = 0;  
   while (i < 5){  
      printline (4-i, i*2+1);  
      i = i + 1;  
   }  
   i = 3;  
   while (i >= 0) {  
      printline (4-i, i*2+1);  
      i = i - 1;  
   }  
   return 0;  
}  

이제 그림이 호출 될 때마다 한 줄의 한 줄을 인쇄하기 위해 기능 프린트 라인을 정의해야합니다. 2 개의 인수, 공백 수 및 라인에 인쇄 해야하는 별표 수가 필요합니다. 카운터 제어 반복을 사용하여 적절한 수의 공간을 인쇄하고 적절한 수의 별표를 다시 인쇄하십시오.

char print_line (int spaces, int stars){  
   for (int i = 4; i>=spaces; i--){  
      printf(" ");  
   }  
   for (int i = 1; i<=stars; i+=2){  
      printf("*");  
   }  
   printf("\n");  
}

우후! 거의 끝났어요! 출력은 별이있는 4 개의 공간이있는 선 대신, 별 3 개가있는 3 개의 공간이있는 선 대신, 공간이없는 공간과 9 개의 별이없는 라인 (그리고 반전)을 제외하고는 ... 나는 라인을 얻는다. 별, 공간과 2 개의 별이있는 선, 2 개의 공간 3 개의 별이있는 선 등, 최대 4 개의 공간 5 개의 별 (그리고 반전)까지 ...
Printline이 다른 이유는 때때로 글을 쓰는 데 문제가 있고 글을 쓰려고 할 때마다 이탤릭체를 계속 얻었 기 때문입니다.

도움이 되었습니까?

해결책

일부 힌트 :

  • 기능은 인쇄 문자 만 필요하며 아무것도 반환하지 않습니다 (이를위한 특정 반환 유형이 있습니다).
  • 공백의 수와 인쇄 할 별 수는 아마도 정수 일 것입니다.
  • 단일 공간을 사용하여 인쇄 할 수 있습니다 printf(" ");
  • 하나의 별을 사용하여 인쇄 할 수 있습니다 printf("*");
  • "Newline"(다음 줄로 이동)을 사용하여 인쇄 할 수 있습니다. printf("\n");
  • 당신이 말하는 경우 int i=0; for(i=0; i<n; i++) { printf("X"); } 당신은 편지를 인쇄합니다 Xn 시간 (이 시점에서 루프에 대해 배우지 않았을 수도 있습니다. 그렇지 않은 경우 다음 힌트를 사용하십시오).
  • 당신이 말하는 경우 int i=0; while(i<n) { printf("X"); i++; } 당신은 또한 편지를 인쇄 할 것입니다 Xn 타임스
  • 당신은 다른 매개 변수 이름을 사용하면 훨씬 더 행복 할 것입니다. a 그리고 b. 매개 변수에 해당하는 이름을 생각해보십시오. 대표합니다.

편집에 대한 응답 :

  • 당신은 두 가지를 사용하고 싶을 것입니다 분리된 루프; 공간을 인쇄 한 다음 별을 인쇄하는 하나
  • for 루프는 항상 하나의 이니셜 라이저, 하나의 점검 조건 및 1 단계/증분으로 구성됩니다.
  • 값을 할당 할 필요가 없습니다 stars 또는 spaces; 그들은 당신에게 당신의 printline 기능 (즉, 이미 가치가 있음)

두 번째 편집에 대한 응답 :

  • 당신의 for 루프, 아마도 인덱스 변수를 사용하고 싶을 것입니다. 다른 전달되는 매개 변수보다 (예 : for(i=0; i<spaces; i++), 어디 i 현재 구성에서는 기능을 호출 할 때 발신자가 지정하더라도 4 개의 공간을 인쇄하려고 시도합니다.
  • Newline을 한 번만 출력하면됩니다. ~ 후에 당신은 모든 공간과 별을 완성했습니다 (즉, 신약 출력은 내부에 속하지 않습니다. for 고리)
  • 당신은 아마도 카운터를 증가시키기 만하면됩니다 1 별을 출력 할 때마다.
  • 과제에 함수를 호출하라고하는 경우 printline, 당신은 그것을 부를 수 없습니다 print_line; 그것은 같은 것이 아닙니다 (둘 다 PrintLine)

세 번째 편집에 대한 응답 :

  • "당신은 아마도 당신의 카운터를 늘리면 1 별을 출력 할 때마다. "
  • "기능은 인쇄 문자 만 필요합니다. 아무것도 반환하지 않습니다 (이를위한 특정 반환 유형이 있습니다) (즉, 반환해서는 안됩니다. char)
  • 공백을 인쇄하는 코드가 별을 인쇄하는 코드처럼 보이도록 원한다고 생각합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top