C언어 질문입니다.

조회수 293회

코드는

#define _CRT_SECURE_NO_WARNINGS
#include<string.h>
#include <stdio.h>

void mainmenu(void) {
    printf("----------Main Menu----------\n");
    printf("1.이름 저장\n");
    printf("2.이름 출력\n");
    printf("3.이름 삭제\n");
    printf("4.프로그램 종료\n");
    printf("-----------------------------\n");
}

int main() {
    int n = 0, k = 0, i = 0;
    char namelist[10][50], name[50];
    while (n != 4) {
        mainmenu();
        scanf("%d", &n);
        switch (n)
        {
        case 1:
        {
            if (k == 10) {
                printf("리스트가 꽉 찼습니다.\n");
                break;
            }
            printf("이름을 입력해 주세요.\n");
            scanf("%s", &name);
            for (int j = 0; j < k; j++) {
                if (strcmp(name, namelist[j]) == 0) {
                    printf("이미 %s(이)라는 이름이 존재합니다.\n", name);
                    i++;
                }
            }
            if (i == 0) {
                printf("%s(을)를 저장했습니다.\n", name);
                strcpy(namelist[k], name);
                k++;
                i = 0;
            }
            break;
        }
        case 2:
        {
            for (int i = 0; i < k; i++) {
                printf("%s\n", namelist[i]);
            }
            if (k == 0) {
                printf("리스트가 비었습니다.\n");
                break;
            }
            break;
        }
        }
    }
}

이건데 중복되는이름을 2번이상 쓰면 이름이 저장이 안되네요 어떻게 하면 될까요?

  • 코드에서는 중복인지 확인하고 중복이면 저장하지 않고있습니다. 어떤 의도로 말씀하시는 것인지 잘 모르겠습니다. QbQi 2022.9.14 10:03

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)