:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
17/04/05 17:23
c를 왜 쓰셨는지 모르겠어요. 그냥 숫자를 출력할거면 b를 출력하면 될텐데요.
c에 관련된건 아예 전부 필요가 없는 사족이고, *을 반복해서 출력하는 부분이 빠져있네요. 그부분만 추가하시면 될거같습니다.
17/04/05 17:28
문제 풀기 전에 변수 3개 써야 될거라고 들어가지고 일단 3개 도입하고 시작하긴 했습니다.
풀면서 실행하다보니까 1* 23* 456* 78910* 이런식으로 출력되게 짠 경우가 있었는데요. 매 줄 시작을 1로 고정할려고 무언가 추가할려다가 본문과 같이 썼습니다.
17/04/05 19:00
써니는순규순규해님이 제시하신 방법은 if문을 쓰지 않는 방법입니다.
즉, a를 기준으로 b영역과 c영역을 나누고 b영역은 숫자찍고 c영역은 별 찍는 방식이죠. 이 경우 for문을 3개 써야 합니다. 하지만 이 문제에서 for문을 3개 쓴다 해도 삼중 for문이 아닌 이중 for문이기 때문에 변수는 두개만 있으면 됩니다. 위에 보니 1~10을 4열에 찍는 문제가 있는데, 이 경우는 열 바뀔때 숫자가 초기화 되면 안되기 때문에 출력할 숫자를 카운터 할 변수 c를 따로 둔 것이죠.
17/04/05 17:39
좀 더 쉬운 힌트를 드리자면
a가 열이고, b가 행이라고 한다면 열과 행은 7로 고정인것이죠. 1열은 숫자 1까지, 2열은 숫자 2까지 3열은 숫자 3까지 나머지는 별 찍는거니 이부분을 if로 구분해서 찍으면 됩니다.
17/04/05 17:55
int a, b;
for (a = 1; a <= 7; a++) { for (b = 1; b <= 7; b++) { if (b < a){ printf("%d", b); } else{ printf("*"); } } printf("n"); }
17/04/05 18:30
for (int icnt = 1; icnt <= 7; icnt++)
{ for (int j =1; j <= 7; j++) { if (icnt < j) printf("[*]"); else printf("[%d]", j); } printf("n"); } ...어, 위에 비슷한 소스 있네요 크크
17/04/05 20:28
char txt[]="*******";
for (i=0;i<7;i++) { txt[i]=i+'1'; printf("%s₩n",txt); } 출제 의도와 다르겠지만 이런 풀이도 가능합니다.
17/04/06 03:50
하지만 실무는 결국
printf("1******\n"); printf("12*****\n"); printf("123****\n"); printf("1234***\n"); printf("12345**\n"); printf("123456*\n"); printf("1234567\n"); 크크
|