sortiertes Array
-
Hallo,
wie erhalte ich denn die Position, in welchem die erste Position ein sortiertes Array keine 0 mehr besitzt?
ich habe es versucht, jedoch wird nur die letzte Stelle das Sortierten Arrays ausgegeben.
Was ist denn mein Fehler?for (z = 0; z < (ANZ); z++){ for (zzz = 0; zzz < 1; zzz++){ if ((arrayErg2[z].val) != 0){ arrayPosition[zzz] = arrayErg2[z].key; } } }
-
Ich kann keinen Zusammenhang zwischen deiner Frage und deinem Code sehen. Wieso gehst du nicht solange durch das Array bis du keine 0 mehr vorfindest?
-
weil ich es vorher sortiert habe, ich will das Minimum ausgeben des Arrays außer der Null.
Sicherlich geht es auch anders, aber ich verstehe nur den quicksort und die Anwendung, und nachdem ich den Quicksort angewandt habe, muss es doch funktionieren, dass ich die erste Stelle angeben kann, an der keine 0 mehr steht.
Also zB sortiertes arrayErg2[] = [0, 0, 0, 2, 4, 67]
dann will ich an diese 2 kommen.
Was muss ich dazu an meinem Code ändern?
-
Butterbrot23 schrieb:
Was muss ich dazu an meinem Code ändern?
Aufhören zu suchen, wenn du ein Element != 0 gefunden hast.
-
Irgendwie hatten wir die Aufgabe beinahe schon hier...
-
was muss ich daran ändern?
eine whileSchleife statt der innersten forSchleife hat nichts bewirkt.
und wenn ich return 0; einbinde, stoppt alles...
-
Tachyon schrieb:
Irgendwie hatten wir die Aufgabe beinahe schon hier...
ja, ich denke wir sind im gleichen kurs.
ich habe es anders gelöst, und würde es gern so haben, dass bei mir die sortiere Stelle ausgegeben wird.
kann mir da jemand helfen? oder ist das so komplex?
-
Butterbrot23 schrieb:
kann mir da jemand helfen? oder ist das so komplex?
Das ist eher zu einfach! Keiner versteht was dein Code überhaupt soll. Du denkst viel, viel, viel zu kompliziert:
int i=0; while (sortiertes_array[i]==0) ++i; int erstes_element_ungleich_null=sortiertes_array[i];
edit: Natürlich unter der Annahme, dass im array auch etwas anderes als Nullen sind. Du solltest besser noch eine Prüfung der Arraylänge einbauen, damit es in diesem Fall keinen Überlauf gibt.
-
ok, danke, es funktioniert.
es es auch möglich die Zahlen, die nicht über 0 und größer als eine Zahl 100 darauf anzuwenden? arbeitet man da mit dem logischen &?