Establecer el número de problema de cálculo: 456
Requisitos de la pregunta:
sabiendo que tanto A como B son colecciones compuestas de datos enteros, use una tabla lineal para representar las colecciones y diseñe algoritmos para encontrar la intersección y unión de las colecciones A y B. Las funciones incluyen la colección de entrada A, la colección de entrada B y la suma A La unión de B, encuentre la intersección de A y B. En esta pregunta, la posición del primer elemento de la tabla lineal es 1 y la longitud máxima de la tabla lineal es 20.
El formato de entrada de cada comando y la descripción de entrada de datos relacionados es el siguiente: Conjunto de entrada A: A, la siguiente línea es el número de elementos del conjunto que se deben ingresar n, lo siguiente son n filas de datos, cada línea de datos tiene un valor, que representa el valor de la entrada del elemento establecido Conjunto B: B, la siguiente línea es el número de elementos del conjunto que se ingresarán n, lo siguiente es n líneas de datos, cada línea de datos tiene un valor, que representa el valor de los elementos del conjunto. Encuentre la unión de los conjuntos A y B: U Encuentre el conjunto A y Intersección de B: I Cuando el comando de entrada es E, el programa finaliza.
Descripción de salida
Cuando el comando de entrada es U, se emite la unión de los dos conjuntos A y B. Cuando el comando de entrada es I, se emiten los dos conjuntos A y B. Tenga en cuenta que todos los elementos ocupan una fila.
Ejemplo de entrada
A
5
1
2
3
4
5
B
2
4
6
U
I
E
Ejemplo de salida
1
2
3
4
5
6
4
Ideas de resolución de problemas:
agua.
Código de despacho de aduana:
#include <iostream>
#define MaxSize 20
using namespace std;
bool isFindOf(int* arr, int len, int val) {
bool isFind = false;
for (int i = 0; i < len; i++) {
if (arr[i] == val) {
isFind = true;
break;
}
}
return isFind;
}
int main() {
int A[MaxSize], B[MaxSize];
int lenA, lenB;
char command;
while (cin >> command) {
if (command == 'E') break;
switch (command) {
case 'A':
cin >> lenA;
for (int i = 0; i < lenA; i++) {
cin >> A[i];
}
break;
case 'B':
cin >> lenB;
for (int i = 0; i < lenB; i++) {
cin >> B[i];
}
break;
case 'U':
for (int i = 0; i < lenA; i++) {
cout << A[i] << endl;
}
for (int i = 0; i < lenB; i++) {
if (!isFindOf(A, lenA, B[i]))
cout << B[i] << endl;
}
break;
case 'I':
for (int i = 0; i < lenA; i++) {
if (isFindOf(B, lenB, A[i]))
cout << A[i] << endl;
}
break;
}
}
return 0;
}
completar.