Steffen schrieb:
> Da ich das Ergebnis sowiso auf 2 Nachkommastellen runden möchte, hab ich
> mir gedacht, nur integer Werte anstelle der Double werte ins Array zu
> laden.
Das ist ein guter Gedanke.
> Also ich nehme das Messergebnis, rechne es *100 und +0.5.
OK.
Dann dürfen aber keine negativen Zahlen vorkommen. Aber da du an die
Rundungskorrektur gedacht hast, gehe ich davon aus, dass du weißt, das
du bei negativen Zahlen die 0.5 abziehen musst
> Mit dem
> Cast (int) schneide ich dann die Nachkommastellen ab und lade es ins
> Array. So hab ich nur Integer Werte vertreten, kann den meist
> vorkommenden raussuchen und anschliessend wieder in einen Double Wert
> wandeln.
Wozu?
Lass sie doch als int.
Wenn irgendwie möglich solltest du dein Programm daraufhin abklopfen, ob
es nicht generell möglich ist, grundsätzlich einfach alles in
Hunderstel-Einheiten auszudrücken, also auf float komplett zu
verzichten.
> Ist dieses vorhaben einfacher? Wie finde ich in einem Int Array am
> schnellsten die meist vorkommende Zahl?
Gegenfrage:
Wie würdest du das am Papier machen, wenn du die Aufgabe mit Papier und
Bleistift lösen musst?
Grundsätzlich ist die Idee mit
zuerst aufsteiegend sortieren
dann abzählen, wieviele gleichartige Zahlen hintereinander kommen
nicht schlecht. Allerdings hast du nur 10 Zahlen, da könnte es sein,
dass das Sortieren seinen Vorteil noch nicht richtig ausspielen kann.
Wenn ich das Problem mit Papier und Bleistift angehe, dann würde ich das
so machen:
ich nehme die erste Zahl aus dem Array
ich merke mir im Kopf (oder auf dem Papier), dass die Anzahl
der vorkommen dieser Zahl gleich 1 ist.
dann gehe ich der Reihe nach alle weitern Zahlen im Array durch
und vergleiche jede davon mit der ersten
Sind sie gleich, dann erhöhe ich meinen Anzahl Zähler
Bin ich durch das Array durch, dann kenne ich somit die Anzahl
der Vorkommen der ersten Zahl im Array
Diesen Wert vergleiche ich mit einer zweiten Zahl, nämlich der
bisher maximal vorgekommenen Anzahl und wenn die jetzige Anzahl
höher ist, dann merke ich mir das als neues Maximum (und natürlich
auch die Zahl dazu)
Dann mach ich das ganze nochmal, mit der zweiten Zahl im Array,
dann mit der dritten Zahl im Array, etc. bis ich durch bin