hallöchen,
ist es irgendwie möglich, den Inhalt eines Arrays zu vergleichen?
Dabei ist ein Array vorgegeben
unsigned int Array1[5] = {1,2,3,4,5};
unsigned int Array2[5] = {0,0,0,0,0};
folgend wird Array 2 mit den werten beschrieben. Dabei ist die
Reihenfolge jedoch unterschiedlich. Auch muss Array2 nicht unbedingt 5
mal beschreiben werden. zum Schluss könnte Array2 wie folgt aussehen
Array2{2,5,3,4,1};
oder auch
Array2{2,5,3,0,0};
Jetzt möchte ich Array2 mit Array1 vergleichen. Aber wie gesagt, nur den
Inhalt. Alsow beim ersten beispiel wäre der Array gleich. beim zweiten
jedoch nciht.
bisher habe ich so etwas immer in einer forschleife gemacht, also
for(i=0,i<=5,i++){
if(Arraay1[i]==Array2[i]){
...
}
}
Das kann ich ja aber hier nicht machen, da die Reihenfolge ja verkehrt
sein darf.
gibt es da noch andere Alternativen?
Sophia
das kann ich ja aber hier nicht anwenden
sophia schrieb: > ist es irgendwie möglich, den Inhalt eines Arrays zu vergleichen? Nein. Verabschiede dich von dieser abstrusen Idee. Da sind die besten Programmierer bereits dran gescheitert. Leider... Ironie aus sophia schrieb: > bisher habe ich so etwas immer in einer forschleife gemacht, also > for(i=0,i<=5,i++){ > if(Arraay1[i]==Array2[i]){ > ... > } > } > Das kann ich ja aber hier nicht machen, da die Reihenfolge ja verkehrt > sein darf. Wenn man auch nur EINE Sekunde überlegt, kommt man auf die Idee, dass man eine zweite Zählvariable mit Schleife nimmt (auch als Anfänger): for(i=0;i<=5;i++){ for (j=0; j<=5; j++) { if(Array1[i]==Array2[j]){ // Funktion } } } Fertig... Richt irgendiwe nach Troll (auch durch die Schreibfehler im Code)
Grmpf... schrieb: > Richt irgendiwe nach Troll Natürlich, die Anzeichen sind eindeutig: Fake-Weibchen Idiotische Einlassung Ganz klar ein Troll. Oder ein echter weiblicher Vollidiot (sehr, sehr unwahrscheinlich). Das wirklich Interessante ist: sachlich würde das durchaus einen Riesenunterschied bedeuten, es macht aber für die korrekte Behandlung des Postings eigenartigerweise keinerlei Unterschied.... Lesen, kichern, vergessen...
Zwei beispielhafte Möglichkeiten: 1. kopieren, sortieren, vergleichen 2. Ein weiteres Array3 gleicher Länge zum Markieren anlegen. Durchsuche Array2 Symbol für Symbol nach den Elementen aus Array1. Wird ein Symbol in Array2 an Position x gefunden, so prüfe ob Position x in Array3 markiert ist. Wenn nicht markiert, so markiere Position x in Array3 und suche nach dem nächsten Symbol. Wenn markiert, suche weiter. Wird ein Symbol nicht gefunden, so sind die Arrays im Sinne der Definition verschieden. Waren alle Suchen erfolgreich, so sind die Arrays im Sinne der Definition gleich.
Carsten R. schrieb: > 2. Ein weiteres Array3 gleicher Länge zum Markieren anlegen. Geht am schnellsten und einfachsten. Wer sich jemals mit 6 aus 49 versucht hat, weisst das.
Ich glaube da fehlt es an Hirnschmalz. Allein die Problemstellung scheint das Resultat eines Denkfehlers zu sein.... Lösbar ist es, wie oben von Grmpf... ansatzweise beschrieben wurde.
Hugo schrieb: > Lösbar ist es, wie > oben von Grmpf... ansatzweise beschrieben wurde. ansatzweise... Denn wenn Elemente in Array1 mehrfach vorkommen dürfen, muß das Programm nachgebessert werden, z.B. mit einem Markierungsarray.
Wie sieht die Anforderung genau aus? Jeder Wert aus array1 muss auch in
array2 vorkommen und umgekehrt? Oder "muss genausooft ... vorkommen"?
Wären {1,2,3,4,1} und {4,3,2,1,4} für Dich gleich?
Ein schönes Beispiel für "Wenn es trivial aussieht, hat man das Problem wahrscheinlich nicht vollständig verstanden".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.