Registro de preguntas de OJ Brush: Número de pregunta de operación del conjunto: 456

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.

Supongo que te gusta

Origin blog.csdn.net/weixin_45711556/article/details/108799698
Recomendado
Clasificación