[컴퓨터_인터넷] C언어 또 질문입니다.
2009.09.30 00:51
3,321
1
0
본문
에에, 질문드릴게 두가지 생겼네요.
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. <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
로그인 후 추천 또는 비추천하실 수 있습니다.
-
아스트랄로피테쿠스
- 회원등급 : 정회원 / Level 21
포인트 100
경험치 23,917
[레벨 22] - 진행률
38%
가입일 :
2007-04-25 01:46:42 (6450일째)
…공포의 실체는 언제나 보잘 것 없다.
그러니, 전력을 다해 공포에 맞서라.
by 엘레나 아페르타, Still X Steel Paradice 2부, 멋진 신세계 中
-
자유게시판 - https://www.news1.kr/society/general-society/5610250#_enliple 이 사람이 기어들어온 시점에서 정치권에서 뭔가 덮으려고 일부러 불태우는 이슈일 가능성이 10할 확실한 것 같네요.2024-11-25
-
추천게시판 - 부모님용이면 A55나 S24FE or 플러스 정도 되는거 사드리면 될겁니다.2024-11-10
-
자유게시판 - 고인의 명복을 빕니다.2024-09-29
-
해외팬픽 2관(ㄹ~ㅊ) - 이클립스의 재림 아니었을까요.2024-09-04
-
해외팬픽 2관(ㄹ~ㅊ) - 타카라즈카 최종직선 시작에서 테이오 선두… 아 고유기 조졌네2024-08-31
-
정보게시판 - 도사의 무녀도 서비스 종료한지 좀 되었고마침 도검난무에서 몰루로 넘어온 동인작가가 꽤 많다죠2024-08-25
-
AA 당히아, 종합학과, 푸른피, 혼자 히어로, 흰머리와 마녀 - 블랙 2호기가 탄생한 날이었다2024-07-18
-
AA 당히아, 종합학과, 푸른피, 혼자 히어로, 흰머리와 마녀 - 블랙과 축장의 딸(?)2024-07-14
전체 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 |
댓글목록 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문 두개만으로 아주 단순하게 구현 할 수 있으니 조금만 더 생각해보세요.