#include <stdio.h> main() { int a[15] = {0, }; int b[15] = {0, }; int hab[30] = {0, }; int gyo[15] = {0, }; int cha[15] = {0, }; int i, j, k, n = 0, m = 0, o = 0, exist = 0, ok = 0; time_t t; srand((unsigned)time(&t)); // 배열 a[] 값 설정 for (i = 0; i < 15; i++) { a[i] = rand() % 30; // 난수 발생 for (j = 0; j < i; j++) { if (a[i] == a[j]) { // 중복 배제 i--; break; } } } // 배열 b[] 값 설정 for (i = 0; i < 15; i++) { b[i] = rand() % 30; for (j = 0; j < i; j++) { if (b[i] == b[j]) { i--; break; } } } printf("배열 a[]\n"); for (i = 0; i < 15; i++) printf("%d ", a[i]); printf("\n\n"); printf("배열 b[]\n"); for (i = 0; i < 15; i++) printf("%d ", b[i]); printf("\n\n"); // 교집합 for (i = 0; i < 15; i++) { for (j = 0; j < 15; j++) { if (a[i] == b[j]) { // 교집합 ok = 1; break; } } if (ok) { for (k = 0; k < n; k++) { if (a[i] == gyo[k]) { // 중복 확인 exist = 1; break; } } if (exist) exist = 0; // 중복이면 else gyo[n++] = a[i]; // 아니면 ok = 0; } } //합집합 a[] for (i = 0; i < 15; i++) { for (j = 0; j < 15; j++) { for (k = 0; k < m; k++) { if (a[i] == hab[k]) { // 중복 확인 exist = 1; } } if (exist) exist = 0; // 중복이면 else hab[m++] = a[i]; // 아니면 } } //합집합 b[] for (i = 0; i < 15; i++) { for (j = 0; j < 15; j++) { if (b[i] == a[j]) { // 중복 학인 ok = 1; break; } } if (ok) ok = 0; // 중복 else { for (k = 0; k < m; k++) { if (b[i] == hab[k]) { // 중복 확인 exist = 1; } } if (exist) exist = 0; // 중복이면 else hab[m++] = b[i]; // 아니면 } } // a[] - [b] 차집합 for (i = 0; i < 15; i++) { for (j = 0; j < 15; j++) { if (a[i] == b[j]) { // 교집합 ok = 1; break; } } if (!ok) { for (k = 0; k < o; k++) { if (a[i] == cha[k]) { // 중복 확인 exist = 1; break; } } if (exist) exist = 0; // 중복이면 else cha[o++] = a[i]; // 아니면 } ok = 0; } printf("합집합\n"); for (i = 0; i < m; i++) printf("%d ", hab[i]); printf("\n\n"); printf("교집합\n"); for (i = 0; i < n; i++) printf("%d ", gyo[i]); printf("\n\n"); printf("차집합\n"); for (i = 0; i < o; i++) printf("%d ", cha[i]); printf("\n\n"); } | cs |
다음검색