Hallo zusammen Jungs und Mädchen,Funktion, die prüft, ob zwei Arrays sind identisch
Ich habe eine Funktion gemacht, dass eine doppelte überprüft, ob die gleichen Zahlen in zwei verschiedenen Arrays vorhanden sind, wenn es eine wiederholte Zahl in der Reihe ist, dass ist egal.
Hier ist meine Funktion:
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;
}
}
In meinem Haupt bin ich zur Zeit nur zu, weil alles, was ich zur Zeit arbeiten muß die Funktion ist. So in der Haupt sieht es so aus:
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.";
aber Sie davon ausgehen würden, weil die Nummer 4 in Array b nicht in Array a ist, dass es die „do not for the same set
“ zurückkehren würde, aber eher frustrierend ist es nicht. Ich bekomme "does form the same set"
. Ich glaube, es geht um meine if-Anweisungen in der Funktion, aber ich bin mir nicht sicher, wie ich das anstellen soll.
Dank
* die Zahl 4 in Array b ist nicht in Array a * vorhanden - Überprüfen Sie das erneut. – chris
@chris Entschuldigung, ich habe es jetzt behoben, Prost. –
Fix die ** Einrückung ** Ihres Codes auch! :) – gsamaras