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 aussophia 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?