목록C (3)
미국산 귤
집합에 원소를 추가하는 함수에 이어서두 집합(배열)을 매개변수로 전달 받아 연산하는 함수를 구현하는 문제를 풀었다.나는 아직 배열을 반환하는 법을 안 배워서, setResult라는 배열에 결과를 담아 그 크기를 반환하도록 구현하였다. 미리 만들어둔 hasElement, 집합이 특정 원소를 가지고 있는지 확인해주는 함수를 활용했다.배열, 배열의 크기, 원소를 매개변수로 전달 받고배열 안에 해당 원소가 존재하면 1, 아니면 0을 반환한다.int hasElement(int set[], int size, int element){ int i = 0; for (i = 0; i 먼저 합집합 연산 함수이다. hasElement 함수에 결과 배열과 그 크기, set1배열의 i번 인덱스값을 전달하였다.합집합은 두 ..
*다중집합이란?-> 일반 집합과 달리, 같은 원소를 여러 번 포함할 수 있다. 즉, 원소의 중복이 허용된다. 다중집합은 같은 원소를 거를 필요가 없기 때문에 코드 구현이 비교적 간단했다.사용자 입력을 받아 순서대로 배열의 원소로 추가하기면 된다. 출력까지 총 2개의 함수만 만들어서 모듈화했다. 원소 추가 함수보다 오히려 출력 조건문에서 조금 헤맸다.집합 형태로 출력하기 위하여 { a, b, c } 이런식으로 마지막 원소에는 콤마가 없어야했다.맨 처음에는 그냥 모두 콤마가 있는 형태로 구현해놓고 나중에 수정해야지, 했는데 뭔가 단단히 꼬여서 처음 코드를 이런 식으로 이상하게.. 짰다arr[i] != 0 을 전제로 또 조건문을 쓰면 되는데 머리가 안 돌아가서 이렇게 이상하게 조건문 2개를 해놓고 왜 안 되..
두 정수 A, B를 입력하면 합을 출력하는 프로그램 다만 0 0 을 입력할 경우 반복문이 멈춰야 한다. 반복문을 몇 번 실행시킬지도 미지수니 for문을 사용할 수도 없고, A, B 값이 초기화가 안 되어 있어 while문도 어떻게 사용할지 막막했다. 해결반복문의 조건을 while(1)로 설정해두면 break문을 만날 때까지 무한 루프가 실행된다. A, B를 입력 받고 if문을 이용해 조건에 따라 다른 결과가 되도록 설정하면 된다. #include int main (void){ int A; int B; // break문에 도달하지 않는 이상 무한 루프 while(1){ scanf("%d %d", &A, &B); // 0 0 이 입력되면 루프를 빠져나옴 if(A == 0 && B == 0){ break; }..