Dreifachtausch bei mehrdiminsionalem Array
-
Hallo zusammen,
bin mir sicher das Ihr mir weiterhelfen könnt.
Habe folgendes Programm unter Borland 5.02 C++ vor:Programm das Zufallszahlen in einen mehrdiminsionalen Array schreibt und diese sortiert (mit dem dreifachtausch) und mir die größte und kleinste Zahl ausgibt.
Habe schon a bissel gemacht, nur am dreifachtausch scheitert es, kann mir einer sagen wieso und warum und was ich verbessern sollte.
Hier der Code:
#include <conio.h> #include <iostream.h> #include <stdlib.h> main() { /* --------------- | DEKLARATION | --------------- */ int buch[5][7]; int z,k; randomize(); /* ------------------------------------------------- | Zufallswertezuweisung Mehrdiminsionales Array | ------------------------------------------------- */ for (int i=0;i<5;i++) { cout<<"innere Schleife "; for (int j=0;j<7;j++) { buch[i][j]=random(900)+100; cout<<buch[i][j]<<" "; } cout<<" "<<endl; } /* -------------------------------------------------------------- | Dreifach Tausch, Sortierung nach größtem u. kleinsten Wert | -------------------------------------------------------------- */ for (int i=0;i<5;i++) { for (int j=i+1;j<7;j++) { if (buch[i][j]<buch[i][j]) { z=buch[i][j]; buch[i][j]=buch[i][j]; buch[i][j]=z; } } } cout<<" Der groeßte Wert ist: "<<buch[0][0]<<endl<<"Der kleinste Wert ist: "<<buch[5][7]; getch(); }
Danke
DrRegister
-
z=buch[i][j]; buch[i][j]=buch[i][j]; buch[i][j]=z;
Hast du dir mal deine Zeilen angesehen?
z=buch[i][j]; -> fein
buch[i][j]=buch[i][j]; -> ??? ist wie x=x bringt irgendwie nix
buch[i][j]=z -> ist auch wie x=x bloß mit einem Umweg über zÜblicherweise tauscht man doch so:
int eins,zwei,tmp;
eins=1;
zwei=2;tmp=eins; -> wir "retten" eins. eins kann nun einen neuen Inhalt bekommen
eins=zwei; -> eins ist jetzt zwei
zwei=tmp; -> zwei kriegt den geretteten InhaltWas du jetzt konkret tauschen musst weiss ich nicht, da ich die Inhalte in deinem Array nicht kenne.
Im übrigen gibt es schon Sortierroutinen in C/C++.....
-
Wo bei einem 2-dimensionalen Array ein 2-fach-Tausch durchgeführt werden soll ist mir auch unklar und auch wie man gleichzeitig nach größtem u. kleinsten Wert sortieren soll auch
entweder "aufwärts" oder "abwärts"
-
Grrrrr soll heissen
ein 3-fach-Tausch durchgeführt werden soll ist
-
danke für die antwort(en)
hmm... würde das nur gerne mit einem dreifachtausch hinbekommen, hast recht da habe ich in der Zeile beim dreifachtausch wohl geschlafen
-
Halte 3-Fach-Tauch immer noch für falsch
Sortiere in einem ersten Rundgang nach Bedingung 1 und dann das sortierte nach Bedingung 2
Nochmal; eine Sortierung nach Größtem u. Kleinsten Wert ist keine 2-fache Sortierung, sondern das eine folgt zwangsläufig aus dem anderen. Hängt nur davon ab, was zuerst kommen soll (stehen die Größten oben oder die Kleinsten)-> beides zuerst geht nicht.Aber es ist eine 1-fache Sortierung
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.