:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/09/04 21:31
n = atoi(argv[1]); 이렇게 고치면 아무 문제 없어 보입니다...
어떤 부분이 에러인지 알려주시면 찾아보겠습니다. 제 컴파일러는 정상작동하는군요... 그리고 소수중 최대값을 찾는게 목적이라면 큰값에서 거꾸로 소수를 찾다가 처음나오는 소수를 출력하는건 어떨지 생각해 봅니다. 무한의 질럿님// char *argv[]는 사실상 이차원 배열입니다. 문자열의 배열이라서요. 문자열 복사를 위해 argv[1][x]로 한문자씩 카피한것 같습니다. 개인적으로는 strcpy를 추천합니다만, 현재 문제에서는 별 필요가 없군요
08/09/04 21:32
그냥 복잡하게 할 것 없이 숫자를 받아서 그 숫자(char)를 int형의 변수로 변환한 다음에 for문을 돌려서 2부터 (변수 - 1)까지 쭉 나눠서 0으로 떨어지는 마지막 수를 출력하면 될거 같은데요.
08/09/04 22:17
카카달려님// 커맨드라인으로 넣기 때문에 인자를 줄수가 없습니다. 그리고 인자를 주지 않고 제일 위에 쓴 방법대로 해도 컴파일 및 디버깅때도 에러가 뜨진 않더군요.
물론 에러가 프로그램 실행 불가로 만드는 에러는 아니지만 있으면 좀 그렇잖아요. tsana님의 컴파일러에서 정상적으로 작동하신다고 하니... 제 컴파일러는 Visual C++ 9.0입니다. tsana님께서 말씀하신대로 스트링카피를 써서 해봤는데 디버그시에는 에러가 뜨더군요. 이게 argument가 없어서 그렇다면 다행이지만...그런것 같지는 않아서 말이죠.
08/09/04 22:48
몇번의 디버깅 시도끝에 역시 문제는 존재하지 않는 인수 argv[1]의 문제 였던것 같습니다.
디버깅시에는...주어질 인수가 없으니 그럴수 밖에 없다는게 증명됐군요. 쓸데없는 고집피워 죄송합니다(_ _)...;;
08/09/05 02:24
참고로, 위와 같은 경우에는 다음처럼 에러 처리를 넣어주는 습관을 길러두시는게 좋습니다. ^^
if ( argc != 2 ) // argument 의 개수가 일치하지 않음 printf("Usage: max_prime number\n"); return 1;
08/09/05 17:22
project > setting > debug 탭을 보면 argument라는 란이 있습니다. 여기에 쓰시면 인자를 넘길수 있어요..
|