#include <stdio.h>


int main()

{

int dataA+ = { 0 }, dataB[20] = { 0 }, and_set+ = { 0 },or_set[30] = { 0 };

int i, j, input;


printf("30개의 정수를 입력하시오.\n");

for (i = 0; i < 30; i++) {

if (i < 10) {

scanf_s("%d", &dataA[i]);

}

else {

scanf_s("%d", &dataB[i - 10]);

}

}


printf("\n입력된 30개의 정수들 :.\n");

for (i = 0; i < 30; i++) {

if (i < 10) {

printf("%d ", dataA[i]);

}

else {

printf("%d ", dataB[i - 10]);

}

}printf("\n");


/*AND 연산 구현

for (i = 0; i < 10; i++) {

for (j = 0; j < 20; j++) {

if (dataA[i] == dataB[j]) {

and_set[i] = dataA[i];

break;

}

}

}

printf("\ndataA AND dataB = ");

for (i = 0; i < 10; i++) {

if (and_set[i] != 0) {

printf("%d ", and_set[i]);

}

}

*/


/* or_set 구현법 dataA와 dataB의 원소값들을 다른배열에 복사하고

   중복된원소를 찾아 0으로 만든다. 이후 출력할때 0을 제외하고 출력 */


for (i = 0; i < 30; i++) {

if (i < 10) {

or_set[i] = dataA[i];

}

else {

or_set[i] = dataB[i-10];

}

}


for (i = 0; i < 29; i++) {

if (or_set[i] == or_set[i + 1]) {

or_set[i] = 0;

}

}


printf("\ndataA OR dataB = ");

for (i = 0; i < 30; i++) {

if (or_set[i] != 0) {

printf("%d ", or_set[i]);

}

}


return 0;

}


AND연산은 되는데 OR은 제가 아무리봐도 로직문제을 못찾겟어요(물론 구대기로직이겠지만) 컴파일은 오류없이 되는데 or연산 구현이 의도대로 안되고 입력값 그대로 나와버립니다 .. ㅠㅠ 이런질문도 받아주는곳인지는 몰라서 일단 올려봐요