[c언어] 집합 구현

2020. 12. 21. 15:30Computer Science/C

 

수학에서 집합(set)은 다중집합(multiset)과 다르게 원소의 중복을 허용하지 않는다.

최대 5개의 정수형 원소를 저장할 수 있는 집합 (set)을 구현한다.

정수를 입력받아 집합의 원소로 추가하고, 그때마다 집합의 원소들을 출력한다.

 

집합의 원소가 5개가 되면 프로그램을 종료한다.

 

#include <stdio.h>
void printSet(int list[], int size)
{
    int i;
    printf("{ ");
    for (i = 0; i < size; i++)
    {
        if (i != 0 && i < size)
            printf(", ");
        printf("%d", list[i]);

    }
    printf(" }");
    printf("\n");
}

int is_in(int number, int list[], int index)
{
    int j;
    for (j = 0;j <= index;j++)
    {
        if (number == list[j])
            return 0;
    }
    return 1;
}

int main(void)
{
    int i, num, index = 0;
    int set[5];

    for (i = 0;index < 5;i++)
    {
        printf("집합에 추가할 원소 : ");
        scanf("%d", &num);
        
        if (is_in(num, set, index) == 0)
            printf("%d은 이미 집합에 있음\n", num);

        else
        {
            set[index] = num;
            index++;
            printSet(set, index);
        }
    }

    
    return 0;
}

 

결과

 

'Computer Science > C' 카테고리의 다른 글