PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/04/13 19:59:23
Name 케빈
Subject c++ 질문입니다. 전화번호부 만들기..
include <stdio.h>

void pbookmakeentry(char name[], int phonenum)
{ scanf("&s",&name);
  scanf("%d",&phonenum);
};

void main()
{ char name[40];
int phonenum;

void pbookmakeentry(char name[], int phonenum);

printf("%s",name);
printf("%d",phonenum);
}

제가 여기까지 해봤는데요 -_-;; 여기서부터 힘드네요;;

누군가 좀 도와주세요 ㅠ

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
MoreThanAir
09/04/13 20:15
수정 아이콘
전체 코드를 봤을 때 문법에 대한 이해도나 문제에 대한 이해도 자체가 너무 떨어지는 느낌입니다.
이런 질문에는 도움을 드릴 수가 없어요. pbookmakeentry함수의 사용이 문법적으로도 말이 안되고...
씨++로 구현하는 과제라면 저 코드는 씨++ 코드라고 할 수도 없습니다.
Mercury]Lucifer
09/04/13 20:16
수정 아이콘
프로그램 제한사항(목적, 사용 가능한 함수 개수, 프로그램에 돌리는 데 들어가는 시간 제한(1초 등))이 있어야 할 것 같습니다;
단순히 전화번호부를 입력받고 출력하는 것만인가요? ...;;

제 기억이 맞다면 scanf를 받을 때 배열 전체를 받을 때는(특히 연속된 글자 등) &name이 아닌
그냥 배열 이름, 즉 name으로 받는 것으로 알고 있습니다.
나머지는 뒷분이 이어서...;;;;
Mercury]Lucifer
09/04/13 20:17
수정 아이콘
그리고 void 함수 위에는 단순히 함수 이름만 적으시면 될 거에요.
void pbookmakeentry(char name*, int phonenum);
이 정도로만요.
MoreThanAir
09/04/13 20:20
수정 아이콘
Mercury]Lucifer님// 그런식으로 선언만 먼저 하는 경우는 메인 함수 아래에 다시 정의부를 적어줘야 합니다. 저렇게 메인 위에 바로 정의하는 방식으로도 사용할 수 있습니다. 물론 마지막에 세미콜론은 없애야겠네요. 코드의 가독성면에서는 좋지 않습니다만...
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 21:20
수정 아이콘
감사합니다 모두;;
아 ㅠ.ㅠ 컴퓨터 언어는 정말 힘드네요;;
화이트푸
09/04/13 22:01
수정 아이콘
개인적으로 PGR에서 C언어를 잘한다고 생각하는 MoreThanAir님이 답변해주셨으니 답변은 빼구요.

언어공부를 차근차근히 해보셔야 할것 같습니다. 교양과목이라면 그냥저냥 넘기셔도 되지만
만약 컴공이나 컴소같은 컴퓨터 분야라면 많이 부족해 보입니다.
09/04/13 22:03
수정 아이콘
왠지 name이랑 phonenumber는 계속 초기화도 안 된 상태로 쓰레기값이 들어가 있겠군요.
저렇게 해서 제대로 된 결과를 보고 싶으시다면,

1. 글로벌 변수로 만든다. (별로 추천해드리고 싶진 않습니다.)
2. 윗분 말씀처럼 레퍼런스나 포인터를 이용한다.

이런 방법이 있겠군요.

그리고 전처리기와 함수들을 봐서 저 코드는 C++이 아니라 C네요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
53777 정말 무서운 이야기 모집합니다 [14] 낭만토스2522 09/04/13 2522
53776 c++ 질문입니다. 전화번호부 만들기.. [10] 케빈3285 09/04/13 3285
53775 컴퓨터 부품 질문이요~ [2] 국토순례자2102 09/04/13 2102
53774 노트북 키보드문제입니다. [1] Silent...2149 09/04/13 2149
53773 인코딩 질문입니다 유닉스드라이1689 09/04/13 1689
53772 통계학 문제 하나 질문드립니다~ [1] Yourfragrance..1580 09/04/13 1580
53771 대리점노트북가격vs인터넷노트북가격.. [1] Enjoy2276 09/04/13 2276
53770 인형을 살 수 있는 곳을 찾고 있습니다!! [2] 오규창2148 09/04/13 2148
53769 재무관리문제입니다 . [3] 접니다3267 09/04/13 3267
53766 부동산에서 돈을 떼였습니다(보증금) 도와주세요 [3] Siva.J1887 09/04/13 1887
53765 안녕하세요 인터넷 쇼핑 반품에 관해 질문드립니다. 쿠크다스1566 09/04/13 1566
53762 게임 아이디를 해킹당했습니다.. [4] 림토5256 09/04/13 5256
53761 하드문제인가요 보드문제인가요?? [2] sherry4725 09/04/13 4725
53759 컴퓨터 얼마나 오랫동안 켜놓으면 문제가 되나요? [10] 불타는오징어16619 09/04/13 16619
53758 현대대수학 질문입니다. 증명문제인데... [5] ElleNoeR2598 09/04/13 2598
53757 교정장치를 하고서 군대가는 것에 대해서.... [2] 아브락삭스3804 09/04/13 3804
53756 비스타에서 워크래프트 리플레이가 돌아가질 않습니다 [1] 제3의타이밍1710 09/04/13 1710
53755 스타 워크 배틀넷 문제입니다. 스타2나와라1684 09/04/13 1684
53754 인터넷 끊김 현상 질문입니다 [1] Lunatique1666 09/04/13 1666
53752 보통 방업이 공업보다 오래 걸리지 않나요? [15] Personal!2492 09/04/13 2492
53750 스타크래프트 오리지날 매뉴얼 구할만한 곳 없을까요? 김영민2726 09/04/13 2726
53749 빌드별 시간(?)정보 알 수 있을까요? [4] 2193 09/04/13 2193
53748 폭행치상 질문 드려요 [6] 똥순이아빠2559 09/04/13 2559
목록 이전 다음
댓글

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