Modalwert einer Zahlenreihe herausfinden
-
Hallo zusammen,
ich hab ein Problem, von dem ich nicht so recht weiß, wie ich es angehen soll:
Es liegt ein int Array mit z.B. 1000 Elementen, in denen Zahlen von 0 bis 99 stehen, die natürlich auch mehrfach auftreten können. Dieses Array habe ich mit qsort() bereits sortiert, von der kleinsten nach der größten Zahl.
Nun soll der Modalwert (also die Zahl, die am häufigsten vorkommt) des Arrays ermittelt und ausgegeben werden. Wie stell ich das am besten an?
Gruß, mister-ac.
-
Da Du ja schon sortiert hast mußte nur noch einmal über das Array drüberlaufen und immer schauen, wenn die Zahl sich ändert. Dadurch kriegste immer wieviele gleiche Zahlen hintereinander standen. Das Längste nimmst Du.
Alternativ kannst Du Dir aber auch das Sortieren sparen:
Mach ein Array a mit 100 Einträgen und füll die mit 0.
Dann läufst Du über Dein Array c drüber und immer wenn Du ne Zahl findest, dann machste den entsprechenden Zähler hoch: a[c[i]]++;Anschließend mußte nur noch den Größten Wert in Deinem Array finden.
-
Hm, da hab ich wohl zu kompliziert gedacht (wie so oft)
... so geht's natürlich.
Vielen Dank und Gruß, mister-ac.