c언어 포커게임 포카드 질문입니다.

조회수 747회
#include <stdio.h>

enum SUIT
{
    SPADE,
    DIAMIND,
    HEART,
    CLOVER
};

struct Card
{
    int suit, rank;
};

int main()
{
    struct Card deck[5];
    enum suit s;
    s = SPADE;
    enum suit d;
    d = DIAMIND;
    enum suit h;
    h = HEART;
    enum suit c;
    c = CLOVER;
    int cnt, i;
    int yes = 0;
    for (cnt = 0; cnt < 5; cnt++)
    {
        printf("%d번째 카드의 숫자와 무늬를 입력하세요", cnt + 1);
        scanf("%d %d", &deck[cnt].suit, &deck[cnt].rank);
    }

    for (cnt = 0; cnt < 5; cnt++)
    {
        for (i = 0; i < 5; i++)
        {
            if (deck[cnt].rank == deck[i].rank)
            {
                yes++;
            }
        }
    }
    if (yes >= 5)
    {
        printf(" 포카드임 ");
    }
}

구조체 struct Card { int suit; int rank; };로 쓰고 멤버 suit는 카드의 무늬(“spade”, “diamond”, “heart”, “clover”)를 저장하기 위한 변수로 사용자는 각각 ‘s’, ‘d’, ‘h’, ‘c’의 값으로 입력한다

내부에서는 enum SUIT {SPADE, DIAMIND, HEART, CLOVER}의 열거된 값으로 저장한다. 멤버 rank(‘A’, 2-10, ‘J’, ‘Q’, ‘K’) 는 정수 1-13의 값으로 입력하고 저장한다고 가정하고 포카드인지 여부에 대해 프로그래밍 하세요.

동일 한 카드를 입력할 경우에는 “중복”, 불가능한 카드를 입력하면 “오류” 라고 출력하 시오. “중복”과 “오류”가 동시에 발생하는 경우에는 “오류”로 출력하시오


일단 제가 짜봤는데 구조체 열거형에 대해 이해를 못하겠습니다. c코딩 부탁드리고 설명도 약간 적어주시면 감사하겠습니다.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)