PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2008/10/16 18:58:06
Name SayGoodBye
Subject c언어 질문요 ㅠㅠ
#include <stdio.h>
int aaa(int a);
int main(void)
{
        int a;
        scanf("%d",&a);        
        printf("%d\n", aaa(a));
        return 0;
}

int aaa(int a)
{
        int x=1;
        int i;

        for(i=0;a>=10;i++){
                x=x*(a%10);
                a=a/10;
        }

        return x;
}

어제도 질문했었는데 도저히 진행이 안되네요 ㅠㅠ
문제는 1122334를 입력하면
1*1*2*2*3*3*4=144
1*4*4=16
1*6=6
이렇게되서 출력되는값이 6이되어야하는데
어떻게해도 안나와요 ㅠㅠ
부탁드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/10/16 19:06
수정 아이콘
흠 방금 복사해서 돌려보니 144가 나오는군요.
님이 짜신 코드는 '1번'밖에 실행이 안되는 겁니다.
마지막 결과가 10 이하가 될때까지 돌리는 등 루프 설정이 필요해 보이네요.

아래는 야매로 해본 결괍니다; 함수는 건드리지 않고 main에 추가한 내용입니다.
참고로 하시면 될 것 같네요.

int main(void)

int a = 1122334;
int b = a;
//scanf("%d",&a);
while(1){
b = aaa(b);
if(b<10){
printf("%d\n",b);
break;

}

return 0;
}
나무이야기
08/10/16 19:48
수정 아이콘
추가 할것도 없고; 단 한줄만 수정하시면 됩니다..
함수 aaa()에서 return x; 를
return x>9 ? aaa(x) : x; 로 바꾸세요.

PS.
그리고 aaa()함수에 논리적 헛점이 보이네요;
for(i=0;a>=10;i++) 이게 아니구 for(i=0;a>0;i++) 이걸로 바꾸셔야 합니다;
그 이유는..인풋값을 1122334가 아닌 23을 넣어보시면 알겁니다;
그리고..변수 i도 빼세요. 아무런 필요가 없는 변수입니다..
변수 i지금 당장은 4byte지만 나중에 게임 프로그래밍할때 함수 스택이 수만번 쌓이면 반드시 리소스 낭비의 주범이 됩니다.
지구사랑
08/10/17 05:38
수정 아이콘
나무이야기님이 PS에서 언급하신 내용을 C로 바꾸면,
for(i=0;a>0;i++) 를 for(;a>0;) 으로 바꾸란 이야긴데, 이것은 결국 while(a>0)과 같습니다.

PS) 나무이야기님이 말씀하신 방식이 더 fancy합니다만, 일단은 레인님 방식을 쓰는 것이 낫겠습니다. 아무래도 지금 배우시는 레벨이 아직 recursive 함수를 다룰 때는 아닌 것 같네요.
08/10/17 08:56
수정 아이콘
나무이야기님// 지구사랑님// 두분 다...
말로만 전공하는 제가 부끄럽네요 ㅠ.ㅠ...공부좀 더 해야겠습니다; 자꾸 C 말고 다른 언어를 찾아나서게 되서..
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
43606 수원 버스노선 질문입니다. [3] 트리티1728 08/10/16 1728
43605 미국 다우존스 개장시간이..한국시간으로 몇시인가요? [4] 나무이야기16420 08/10/16 16420
43604 쏘우가 잔인한가요?? [10] worcs3486 08/10/16 3486
43603 알릴 자리 라디칼 반응. 구름지수~4880 08/10/16 4880
43601 파이터포럼에 왜 포모스 기사가 있나요? [2] 보르헤스1946 08/10/16 1946
43600 동영상과 오디오 싱크가 계속 밀립니다. [2] 라이디스2086 08/10/16 2086
43599 내일 PO2차전 질문입니다! [1] 말룡1535 08/10/16 1535
43598 컴퓨터 부팅 문제입니다. [1] 8141732 08/10/16 1732
43597 서울 지하철 노선 질문입니다. [3] manly_toss1854 08/10/16 1854
43596 패러디하기좋은 영화포스터 yO、5736 08/10/16 5736
43595 c언어 질문요 ㅠㅠ [4] SayGoodBye1541 08/10/16 1541
43594 과일의 당도?? [13] snut2170 08/10/16 2170
43591 지갑을 잃어버렸습니다. [10] 껀후이1748 08/10/16 1748
43590 싸게 배너를 걸어볼 수 있을만한 곳이있을까요? 분수1529 08/10/16 1529
43589 윈도우 시작할 때 특정폴더가 항상 열립니다. [4] 할수있다!!2118 08/10/16 2118
43588 저프전 고수님들 제발 봐주세요 ㅠㅠ [4] 0ct0pu51973 08/10/16 1973
43587 쏘우 보신분들 질문 드립니다. [6] 고드헨드1850 08/10/16 1850
43586 노래 질문입니다 [3] 어둠속스탠드1673 08/10/16 1673
43585 템파베이 왜 그렇게 잘하나요? [5] 구라미남1876 08/10/16 1876
43583 헬스 관련 질문입니다. [8] Neo_Knight1638 08/10/16 1638
43581 노래(악기) 질문 하나 드립니다.. [2] FantaSyStaR1744 08/10/16 1744
43579 군대입영연기에 대한질문입니다 [12] MayLee3780 08/10/16 3780
43578 플래시를 배우고 싶습니다. 엑소1543 08/10/16 1543
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로