Привет парней и девушка,Функция, которая проверяет, если два массива идентичны
Я сделал функцию, что двойные проверки, если один и то же число в двух разных массивах присутствует, если происходят повторное число в массиве, не имеет значения.
Вот моя функция:
bool sameSet(int arrA[], int arrB[], int sizeA, int sizeB) {
int temp;
if (sizeA < sizeB) {
for (int i = 0; i < sizeA; i++) {
bool exist = false;
for (int j = 0; j < sizeB; j++) {
if (arrA[i] == arrB[j]) {
exist = true;
break;
} // end of if
} // end of second for loop
if (!exist) return false;
} // end of first loop
return true;
}
else {
temp = sizeA;
sizeA = sizeB;
sizeB = temp;
// cout << "\nSize A is " << sizeA << " Size B is " << sizeB;
for (int i = 0; i < sizeA; i++) {
bool exist = false;
for (int j = 0; j < sizeB; j++) {
if (arrA[i] == arrB[j]) {
exist = true;
break;
} // end of if
} // end of second for loop
if (!exist) return false;
} // end of first loop
return true;
}
}
В моей магистральный я в настоящее время только потому, что все жестко прописывать мне нужно работать в настоящее время является функцией. Так что в основном она выглядит следующим образом:
int sizea = 10, sizeb = 15;
int a[] = {1, 3, 9, 16, 2, 5, 5, 5, 1, 16};
int b[] = {3, 9, 16, 9, 16, 16, 1, 1, 3, 2, 2, 5, 4, 16, 3};
cout << "The elements of the arrays a and b ";
if (!sameSet(a, b, sizea, sizeb)) {
cout << "do not ";
}
cout << "form the same set.";
Однако вы бы предположить, потому что число 4 в массиве б не присутствует в массиве а что было бы вернуть «do not for the same set
», однако довольно удручающе это не делает. Я получаю "does form the same set"
. Я считаю, что это связано с моими операциями if в функции, но я не совсем уверен, как это сделать.
Thanks
* номер 4 в массиве b отсутствует в массиве a * - Проверьте это снова. – chris
@chris жаль, что я исправил это сейчас, ура. –
Исправить ** отступы ** вашего кода тоже! :) – gsamaras