• 북마크
타입문넷

질문게시판

[컴퓨터_인터넷] C언어 또 질문입니다.

본문

에에, 질문드릴게 두가지 생겼네요.

1. <stdio.h>헤더만으로 'y/n?'을 물어볼 수 있나요?

안되면 char변수로 y나 n을 입력받아서 그에 따라 분기를 나누려 하는데, scanf로 char변수에 입력을 받을 때 scanf(X, &char변수)에서 X에 뭐를 넣어야 하나요?
뭐 이건 안되도 그만입니다만 좀더 완성도를 높이기 위해서...

2.
*
**
***
****
*****
******
*******
********
*********
**********
이중 for문을 이용해 이것과 약간 다른 형태로 5가지를 출력해야합니다.
이것만 되면 나머지는 그냥 되겠는데,

for( nRound1 = 1; nRound1 < 11; nRound1++ )
{
printf("*");
for( nRound2 = 1; nRound2 < 11; nRound2++)
{
if( nRound1 % nRound2 == 0 )
{
printf("\n");
nRound2 = 1;
break;
}
}
}

첫번째 for에서 * 하나 찍어주고, 두번째 for에서 반복 횟수에 따라 그냥 나가서 *을 더 찍을지, 줄을 바꿀지 분기하게 만들려 했습니다만 이렇게 짜면 그냥 * 하나만 10줄 채우고 끝나버립니다.
여기서 break;를 빼면 * 하나 출력하고는 줄바꾸기 무한루프 돌입... 타케루도 아니고.

여기서 어떻게 바꾸면 잘했다고 소문이 날까요?(...)

  • 1.43Kbytes
0
로그인 후 추천 또는 비추천하실 수 있습니다.
profile_image
포인트 100
경험치 23,917
[레벨 22] - 진행률 38%
가입일 :
2007-04-25 01:46:42 (6450일째)
…공포의 실체는 언제나 보잘 것 없다.

그러니, 전력을 다해 공포에 맞서라.

by 엘레나 아페르타, Still X Steel Paradice 2부, 멋진 신세계 中

댓글목록 1

그레이브님의 댓글

profile_image
1. 책 뒤져보시면 금방 나옵니다.



2.



1  for( nRound1 = 1; nRound1 < 11; nRound1++ )

2  {

3      printf("*");

4      for( nRound2 = 1; nRound2 < 11; nRound2++)

5      {

6        if( nRound1 % nRound2 == 0 )

7        {

8            printf("\n");

9            nRound2 = 1;

10          break;

11        }

12    }

13  }







6번째줄 if문의 조건이 잘못되었습니다.

%연산의 결과값은 nRound1을 nRound2로 나누고 나머지 값이 나오는데, 4번째줄의 for문이 시작하면 nRound2는 무조건 1로 시작하게 되고 당연한 이야기지만 어떤 숫자든간에 1로 나누면 나머지가 0이 나옵니다.

그렇기 때문에 4번째줄의 for문은 무조건 한번만 반복합니다.



10번째줄의 break문을 삭제할경우 9번째줄에 의해 nRound2가 계속 1로 입력되기 때문에 nRound2가 11보다 커질수가 없으니 당연히 printf("\n")이 무한 반복되어 결과적으로 줄띄우기만 무한 반복되게 됩니다.



이중포문을 이용한 삼각형 그리기는 '코딩에는 정석이 없다'는 말이 있음에도 불구하고 누구나 처음에 거쳐가는 기본 스텝이다보니 정석이 존재합니다.

if문 같은거 필요없이 for문 두개만으로 아주 단순하게 구현 할 수 있으니 조금만 더 생각해보세요.
전체 57 건 - 3 페이지
제목
아스트랄로피테쿠스 3,560 0 2010.04.11
아스트랄로피테쿠스 3,803 0 2010.03.11
아스트랄로피테쿠스 3,596 0 2010.02.02
아스트랄로피테쿠스 3,647 0 2010.01.25
아스트랄로피테쿠스 7,295 0 2009.12.02
아스트랄로피테쿠스 5,013 0 2009.11.08
아스트랄로피테쿠스 5,816 0 2009.11.01
아스트랄로피테쿠스 3,718 0 2009.10.31
아스트랄로피테쿠스 3,735 0 2009.10.30
아스트랄로피테쿠스 4,462 0 2009.10.23
아스트랄로피테쿠스 3,322 0 2009.09.30
아스트랄로피테쿠스 3,281 0 2009.09.20
아스트랄로피테쿠스 3,201 0 2009.08.21
아스트랄로피테쿠스 2,970 0 2009.07.30
아스트랄로피테쿠스 3,001 0 2009.06.25