:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
09/04/13 20:15
전체 코드를 봤을 때 문법에 대한 이해도나 문제에 대한 이해도 자체가 너무 떨어지는 느낌입니다.
이런 질문에는 도움을 드릴 수가 없어요. pbookmakeentry함수의 사용이 문법적으로도 말이 안되고... 씨++로 구현하는 과제라면 저 코드는 씨++ 코드라고 할 수도 없습니다.
09/04/13 20:16
프로그램 제한사항(목적, 사용 가능한 함수 개수, 프로그램에 돌리는 데 들어가는 시간 제한(1초 등))이 있어야 할 것 같습니다;
단순히 전화번호부를 입력받고 출력하는 것만인가요? ...;; 제 기억이 맞다면 scanf를 받을 때 배열 전체를 받을 때는(특히 연속된 글자 등) &name이 아닌 그냥 배열 이름, 즉 name으로 받는 것으로 알고 있습니다. 나머지는 뒷분이 이어서...;;;;
09/04/13 20:17
그리고 void 함수 위에는 단순히 함수 이름만 적으시면 될 거에요.
void pbookmakeentry(char name*, int phonenum); 이 정도로만요.
09/04/13 20:20
Mercury]Lucifer님// 그런식으로 선언만 먼저 하는 경우는 메인 함수 아래에 다시 정의부를 적어줘야 합니다. 저렇게 메인 위에 바로 정의하는 방식으로도 사용할 수 있습니다. 물론 마지막에 세미콜론은 없애야겠네요. 코드의 가독성면에서는 좋지 않습니다만...
09/04/13 20:28
MoreThanAir님// 아, 밑에가 없었군요-_-;; 하나 배우고 갑니다^^
MoreThanAir님의 가운데 pbookmakeentry함수의 사용이 문법적으로 말이 안 된다는 것은... 함수를 실행할 때는요... void pbookmakeentry(char name[], int phonenum);가 아닌 pbookmakeentry(name, phonenum); <- 이것으로 실행해야 한다고 알고 있습니다. name은 포인터 연산자이기 때문에(배열의 이름이죠) 이렇게 써야 제대로 넘어가고... phonenum은 숫자이기 때문에 이렇게 써야 제대로 넘어가죠. char name[]이나 int phonenum을 넘길 수는 없으니까요. 아, 그리고 int보다는 unsigned long int를 써야 8~9자리의 숫자를 쓸 수 있습니다; 그냥 int는 C에서는 32767까지, C++에서는 65535까지라고 알고 있구요. 따라서 unsigned long int, double(소수점으로 -을 구분할 수 있죠) 또는 아예 char로 넘겨버리시는 게...; 공부한 지 좀 되어서 살짝 불안하긴 하네요^^;;
09/04/13 21:05
음.. 많은 부분에서 에러가 날 것 같은데요.. 우선 첫줄에 #include <stdio.h> 로 작성해야 합니다.
그리고 작성한 코드는 C++ 코드가 아니라 C 코드인것 같은데요.. main 함수에서 호출하는 pbookmakeentry 함수는 위에 분들이 적어주셨는데요. pbookmakeentry() 함수가 해주는 역할이 이름, 전화번호를 불러오기 위한 부분 같은데 실제로 호출을 위해서 사용하신다면 pbookmakeentry(name, &phonenum); 처럼 작성해야 main 함수 내에서 phonenum 변수에 전화번호를 불러올 수 있습니다.
09/04/13 21:15
직접 돌려보니 문제가 많이 발생하네요.. scanf에서의 &s- > %s 부분도 잘 못 되었구요..
함수에서 phonenum 변수를 통해서 전화번호부를 불러오고 싶다면 포인터 변수를 사용해서 받아와야 합니다. 그렇지 않다면 return 을 이용해야 할 것 같구요.. 현재 작성된 상태에서 에러를 고친다고 하더라도 main 함수 내에서 입력된 이름은 불러올수 있으나 전화번호부 값은 가져올 수 없습니다. call by reference(address) 부분을 참조하셔야 할 것 같습니다..
09/04/13 22:01
개인적으로 PGR에서 C언어를 잘한다고 생각하는 MoreThanAir님이 답변해주셨으니 답변은 빼구요.
언어공부를 차근차근히 해보셔야 할것 같습니다. 교양과목이라면 그냥저냥 넘기셔도 되지만 만약 컴공이나 컴소같은 컴퓨터 분야라면 많이 부족해 보입니다.
09/04/13 22:03
왠지 name이랑 phonenumber는 계속 초기화도 안 된 상태로 쓰레기값이 들어가 있겠군요.
저렇게 해서 제대로 된 결과를 보고 싶으시다면, 1. 글로벌 변수로 만든다. (별로 추천해드리고 싶진 않습니다.) 2. 윗분 말씀처럼 레퍼런스나 포인터를 이용한다. 이런 방법이 있겠군요. 그리고 전처리기와 함수들을 봐서 저 코드는 C++이 아니라 C네요.
|