[문제 해결]전화번호부 v1.0(1) 인덱스 관련하여 질문입니다. 강의를 아무리 돌려봐도 인덱스를 업데이트 안하네요.
53
1 asked
전화번호부 v1.0(1) 인덱스 관련하여 질문입니다. 강의를 아무리 돌려봐도 인덱스를 업데이트 안하네요.
제 생각에는 add 하면 ++
delete 하면 --
아니면 최소한 return int로 적절한 값을 갱신하던가
아니면 주소값을 참조하여 갱신하던가 뭔가 전화번호부 인덱스가 업데이트되어야 할거라고 생각하는 데 코드를 못따라가겠습니다.
제가 무엇을 놓치고 있는거 같은지 혹시 답변해주실 분 계실까요????
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define BOOK_SIZE 100
#define BUFFER_SIZE 100
void add()
int main(void)
{
char *names[BOOK_SIZE];
char *phones[BOOK_SIZE];
char *buffer[BUFFER_SIZE];
int length;
length = 0;
while (1)
{
pritnf("$ ");
// fgets(buffer, BUFFER_SIZE, stdin);
scanf("%s", buffer);
if (strcmp(buffer, "exit") == 0)
return (0);
if (strcmp(buffer, "add") == 0)
add();
//length++;
else if (strcmp(buffer, "find") == 0)
find();
else if (strcmp(buffer, "delete") == 0)
delete();
else if (strcmp(buffer, "status") == 0)
status();
else
printf("명령어는 총 5가지 입니다. add, find, status, delete, exit");
}
return (0);
}
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. 헬로우님께서 제기하신 전화번호부 v1.0(1) 인덱스 관련 문제에 대해 말씀드리겠습니다.
전화번호부 프로그램에서 add나 delete를 통해 인덱스를 업데이트하는 과정은 매우 중요합니다. 인덱스를 관리하는 변수 length를 적절히 갱신해야 전화번호부의 크기를 올바르게 추적할 수 있습니다.
여기에서 중요한 점은:
1. 데이터 추가 시: add() 함수 안에서 length를 증가시켜야 합니다. 이는 전화번호부에 새로운 항목이 추가되었음을 나타냅니다.
2. 데이터 삭제 시: delete() 함수 안에서 length를 감소시켜야 합니다. 삭제 연산을 통해 항목이 제거되었음을 반영해야 합니다.
3. 적절한 인덱스 관리: 전화번호부의 크기를 유지 관리하기 위해 인덱스가 변할 때마다 length를 수정해야 합니다. 함수 내에서 return 값이나 포인터를 통해 변화를 반영할 수도 있습니다.
코드를 보면 add() 함수가 미완성 상태에 있어서, 이 함수 내에서 인덱스를 증가시키는 코드가 누락된 것 같습니다. delete() 함수 역시 length--와 같은 코드를 포함할 필요가 있습니다.
아래는 함수의 변화를 간단히 설명하는 예시입니다:
void add(char *names[], char *phones[], int *length) {
// 새로운 항목을 names와 phones에 추가하는 코드
(*length)++; // length를 증가시켜 전화번호부에 항목이 추가되었음을 반영
}
void delete(char *names[], char *phones[], int *length) {
// 특정 항목을 names와 phones에서 제거하는 코드
(*length)--; // length를 감소시켜 삭제를 반영
}
자세한 구현은 강의 내용을 따라가며, 각 함수의 내부 로직을 완성하시면 도움이 될 것입니다.
관련 질문으로 “C로 배우는 자료구조: 함수 내 전역변수 인덱스 갱신 방법”을 확인해 보실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요. 계속 프로젝트를 해야지 하다가 결제하고 환경 설정 중입니다.
0
13
1
music libaray
0
68
1
자료구조 1강, 코드, array --> tmp 할당, 방 4개에서 방 8개로 이사함 ㅅㅅ
0
98
1
자료구조 1강, 코드, array --> tmp 할당, 방 4개에서 방 8개로 이사함 ㅅㅅ
0
98
0
배열대신 포인터 arithmetic으로 써야하는 이유가 있을까요?
0
627
1
search_song함수의 ptr_snode = ptr_snode;의 의미가 궁금합니다
0
407
1
스택 구현
0
368
0
학습 자료 pdf 파일에 관해서
0
844
1
포인터 참조 질문
0
319
1
redefinition; different basic types 오류
2
1270
2
한글이 깨지는 경우 어떻게 해결하나요?
0
343
0
안녕하세요. c언어 독학중인 학생입니다.
0
554
1
search 함수의 선언 궁금증
0
284
1
두번째 예제 질문있습니다!
0
208
0
메모리 동적 할당에서 메모리공간을 확장시킬 때
1
393
0
realloc함수 쓰지 않는이유
0
262
0
안녕하세요 교수님. free()관련해서 질문 있습니다.
0
239
0
동적으로 할당된 메모리의 life time 관련하여 질문 있습니다.
0
276
0
Node에 대한 코드 안에 링크필드 선언할 때
3
210
0
stack 구현에서 동적할당중 형변환의 유무에 관한 질문
0
293
0
find함수가 제대로 작동을 안합니다
0
275
1
3강 문자열에 등장하는 코드에 관한 질문입니다.
1
302
0
컴파일 실행 중에 오류가 났는데, 구글링으로도 해결방법을 모르겠어서 남깁니다.
0
238
0
21분23초 char **tmp1에서 캐스팅을 해주는 이유는 무엇인가요?
0
350
2

