C Werte von Array auf Gleichheit vergleichen?

mxb1n

Cadet 4th Year
Registriert
Okt. 2017
Beiträge
124
Hallo,

mal vorgestellt, ich habe einen Array erstellt, wo mit der Tastatur 5 Integer-Werte eingelesen wurden (Zahlen 1-6).
Nun möchte ich überprüfen ob 4 von den 5 den gleichen Wert besitzen, oder ob 3 von den 5 den gleichen Wert besitzen.

Wie gehe ich dort am besten vor?
Wenn ich mit if arbeite und alle Möglichkeiten durchgehe, wird der Code viel zu lang, es muss wohl eine elegantere Lösung geben, zerbreche mir aber schon seit über eine Stunde den Kopf und finde keinen Ansatz..
 
5 Hilfsvariablen anlegen a,b,c,d,e Array durchlaufen. Wenn an Stelle 1 eine 1 steht a++ usw. am Ende prüfen ob eine der Hilfsvariablen den wert 3 oder 4 hat. Also so solltest du aber nur bei diesem kleinen Array vorgehen :evillol:
 
Was du willst, ist nicht eine Prüfung auf Gleichheit, sondern du möchtest die Größe der Schnittmenge ermitteln. Google mal nach "c array intersection".


Edit;

Duplikate beachten und ggf. erst rausfiltern!

Und weil ich schon erste Optimierungansätze bei einem Array der Größe 5 hier sehe, direkt noch mal der Verweis auf das wichtige KISS-Prinzip.
 
Zuletzt bearbeitet:
Wenn sich an dem Scenario nichts ändert und du keine weiteren Infos brauchst würd ich die erste Zahl mit den anderen vergleichen und die Treffer mitzählen. Bei mehr als 3 gleichen bist schon fertig, bei 2 Gleichen musst du noch die nächsten beiden auf 3 Treffer checken und wenn nix passt fängst du mit dem restlichen Feld von vorne an.
 
Ermittle die größte eingegebene Zahl im Array.

Mach ein zweites Array mit der Länge der größten Zahl+1.

Iteriere durch das erste Array, nehme den Wert, erhöhe im zweiten Array wo der Index = Wert aus erstem Array ist um +1.

Iteriere durch das zweite Array und prüfe ob irgendein Wert 3 bzw 4 ist.

Wäre jetzt meine Idee. Kann aber kein C und weiß nicht ob das da so einfach geht.
 
Zurück
Oben