|
이경문 님이 쓰신 글 :
: 강도욱님에게 토를 다는 건 아니지만요, 일반적으로 recursion에는 일반적으로 exit condition이 들어가는 것이 좋습니다. portability면인 입장에서도요.
: 그래서 제 생각에는 main의 첫번째 인자에 depth를 나타내는 인자가 들어가는 것이 좋을 것 같다는 생각이 듭니다(물론 스택을 그만큼 쓰기 때문에 느려 지는 단점이 있기는 하지만).
맞습니다. Recursion을 쓸 때 이렇게 정적 전역 변수를 쓰는 방법은 절대 권장할 만한 방법이 아닙니다. 인자에 depth를 쓰는 방법이 제대로 된 방법이죠.
: 그런데 main함수에 인자를 바꿀 수 있나....?
당근 안됩니다. ANSI C++에서 인정하는 main의 원형은 다음 두가지 뿐입니다.
int main()
int main(int argc, char* argv[])
굳이 depth를 쓰려면 명령행 인자(command line parameter)로 적는 방법이 있겠네요.
물론 귀찮게 atoi()와 itoa()로 문자열과 정수를 서로 변환해야 하죠.
: 리포트같은데 문제 내용도 좀 이상하구... 쩝.
정말 '문제'있는 '문제'로군요.
이렇게 실무에서 절대 사용되서는 안되는 걸 '문제'로 내는 교수들은 정말 '문제'가 있습니다.
: 강도욱 님이 쓰신 글 :
: : //이렇게 해보세요.. DevC++ 컴파일러에서 테스트해보니 잘 되는 군요..^^
: :
: :
: : #include <stdio.h>
: : #include <stdlib.h>
: : static int dw=1; //정적 변수 선언 및 초기화 ..
: :
: : int main(void)
: : {
: : printf(" The universe is never ending! %d\n", dw);
: : dw++;
: : if (dw > 17)
: : {
: : system("pause");
: : return dw = 0; // 반환값이 0 이면 종료하죠..^^
: : }
: : else
: : {
: : main();
: : return dw;
: : }
: : }
: :
: :
: :
: :
: :
: :
: : 초보자 님이 쓰신 글 :
: : : #include <stdio.h>
: : :
: : : int main(void)
: : : {
: : : printf(" The universe is never ending! ");
: : : main();
: : : return 0;
: : : }
: : : 이걸요 정적 변수를 사용해서 main함수만으로 17번 호출한뒤 종료하게 하는 것인데요
: : : 아시는분 도움좀 주세요-_ㅠㅠ
: : :
: :
|