Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Genau das is mein Problem. Es zeigt die 23 3mal an und löscht irgendwelche anderen Werte dafür einfach raus... ich hab Kein plan warum das passiert und wann aber manche teile sortiert er und manche net! Und ja die Klasse is im mom noch sinnlos ich habs nur so geschrieben das ich später vllt noch ne Header datei draus machen kann!
ähm was hastn du da jetzt verändert? ich seh da nciht wirklich n Unterschied! und bevor ich jetzt wieder als voll..... beschimpft werde... Denkt bitte daran das ich net wirklich gut bin in Programmierung und es mich auch net wirklich interesiert! Aber ich muss es halt machen

Nur um das nochmal klar zu stellen... ich seh keinen Unterschied in dem Sortieralgorithmus! ich seh in dem üblichen natürlich schon n Unterschied!

Warum sagst du das nicht?

Warum muss man erst in selbst in die Falle laufen?

Das mit dem crashen war nicht nur dumm, sondern auch noch blauäugig. Man postet keinen Code der noch nen anderen Fehler (hier crash) hat.


Trotz dessen, dass du so DAU-ig deine Frage gestellt hast, werde ich hier die Antwort auf dein Problem posten. (Hauptsächlich deshalb, weil ich so dumm war das Ergebnis mir nicht genau anzuschauen).

         if( array[suchPos] < array[arrayAnfang] )
         {
            minPos=suchPos;
            minWert=array[suchPos];

            array[minPos]=array[arrayAnfang];
            array[arrayAnfang]=minWert;
         }

5 Minuten printf debugging(?) haben genügt. Oder habe ich noch irgendetwas anderes übersehen?

hmm Funktioniert bei mir Trotzdem nicht ich krieg jetzt überhaupt keine Ausgabe mehr.
Naja trotzdem danke für die Hilfe nachdem ich mir die ganzen Beleidigungen anhören hab müssen

Ach übrigens es funktioniert jetzt! hab noch was vergessen rein zu schreiben! Aber so wie du das geschrieben hast ist es kein Selektion sort mehr... Du hast das Austauschen mit in die if-Schleife geschrieben. Selektion Sort heisst aber das er ZUERST das gesamte array nach der kleinsten Zahl durchsucht und dann tauschst.
Mit der Version tauscht er aber sofort wenn er n kleineres Element gefunden hat und das is net der Sinn von SelektSort

@...
Ich bin enttäuscht! Aber was soll man von Amat.... ach lassen wir das. Du sollst schliesslich arbeiten und nicht ständig den alten Computerhilflern über die Strasse helfen...


@Blackbird

#include <iostream>
using namespace std;
void f (double *array,int size)
{
   for( int arrayAnfang = 0; arrayAnfang < size-1; ++arrayAnfang )
   {
      int minPos = arrayAnfang;
      double minWert = array[arrayAnfang];
      for( int suchPos = arrayAnfang + 1 ;suchPos < size ; ++suchPos )
      {
         if( array[suchPos] < array[minPos] )
         {
            minPos=suchPos;
            minWert=array[suchPos];

         }
      }
      array[minPos]=array[arrayAnfang];
      array[arrayAnfang]=minWert;
   }
   for (int i=0; i<size;i++)
   {
       cout << array[i]<< endl;
   }
}

int main()
{
    double array[]={1,2,8,10,423,12,23,765,345,81,66,45};
    f( array, sizeof( array ) / sizeof( double ));
}

Toll das Du den Fehler von ... erkannt hast. Aber die richtige Lösung war dann doch wohl nicht soo weit entfernt, oder??? Ich spar mir weitere Kommentare - meine Meinung diesbezüglich ist ja bekannt...

Oops, der Lösungsvorschlag kam ja von ###! ( Ich Blindfisch, gut dass ich heute das Bett gehütet habe ... )

Jetzt bin ja glatt gar nicht mehr so enttäuscht - in diesem Fall hätte ich es ja nicht anders erwartet ;)

Ja ist klar das es so gehen Müsste... aber das Funktioniert eben nicht! Es ist genau das was mich ankotzt wenn mans so macht sortiert er wieder net richtig und das Kapier ich eben nicht!
Sobald ichs ausser Schleife raus zieh

Hättest Du Dir die Mühe gemacht, mein Programm zu kompilieren, hättest Du diese Ausgabe erhalten:

1
2
8
10
12
23
45
66
81
345
423
765

Dämmert Dir langsam, dass dieses ganze gemecker in den Postings vorher nicht von ungefähr kommt ???

Ja jetzt gehts. Thx! Ich hatte noch was falsches von Vorhin drin als mir jemand gesagt von diesen klugen leuten hier gesagt hat wie ichs doch machen soll das war aber Falsch! Naja habs jetzt nochmal genau überprüft und jetzt funktionierts! Danke vielmals!
Jetzt hab ich nur noch das Prob das ich das auch noch auf Wörter übertragen muss! Also bis jetzt kann ich mit diesem Quellcode nur Zahlen sortieren und Wörter hab ich bis jetzt noch nie Sortiert!

-------------------------------------------------------
void Selectsort :: Wort (char **array,int size)
{ for(int arrayAnfang=0;arrayAnfang<size-1;++arrayAnfang)
  { int minPos=arrayAnfang;
    char* minWert=array[arrayAnfang];
    int max=(sizeof(array)/sizeof(array[0]));
    for (int suchPos=arrayAnfang+1;suchPos<max;++suchPos)
    { if (_stricmp(array[suchPos],array[minPos])<0)
      { minPos=suchPos;
        minWert=array[suchPos];
      };

    };

      array[minPos]=array[arrayAnfang];
    array[arrayAnfang]=minWert;

  }

}

----------------------------------------------------

Das Funktioniert nämlich net ganz!
Ich weiss ich nerv =) aber is ja schlieslich n Hilfe Forum

Och nö, das ist jetzt so dämlich hingeschlampt, da gehört jeder bestraft, der noch hilft.

Beispiel:

Zitat
int max=(sizeof(array)/sizeof(array));

Was soll das? Was sollte das überhaupt machen, selbst wenn "sizeof(array)" in diesem Kontext Sinn machen würde??? Schreib doch gleich "int max = 1"

 int max=(sizeof(array)/sizeof(array[ 0 ]));

sollte das heissen... ich weiss nicht warum es das nicht übernommen hat....

also /sizeof(array[ 0 ]));

Ich hatte nur die eckigen Klammern zusammen geschrieben ohne leerzeichen dann hat er da n Fehler rein gehaut.... Ey man soooo doof bin ich jetzt auch wieder net man auch wenn das hier vllt alle denken

Ja, schon blöd dieses Copy&Paste. Immer kopiert es was ganz anderes als das, was man geschireben hat.... Und das die Vorschau das dann noch nichteinmal richtig anzeigt ist ein Skandal!

Nur: sizeof( char** ) / sizeof( char * ) ist auch nicht sinnvoller...

Also erst mal an Alle die meinen Ihre Klappe so weit aufreisen

ich hab bei euren gesammelten dummen antworten (ohne den Threateröffner) n paar miese fehler/verhaltenstörungen gefunden

1.) wenn jemand ein problem mit C++ hat schickt ihn nich zu Java. das is wie n Treiberproblem unter Linux und du ihm dann n Windowstreiber gibst, das is dämlich hirnrissig und einfach nur hinterwäldlernievau

2.) KEINER von euch "Intelligenten" Menschen hat erkannt das er kein "echtes" Selectsort programmiert hat.

3.) Zum thema Pisa, KEINER von euch hat auf Seine frage geantwortet dass es ne lösung erreicht gegeben, ihr habt ihn einfach nur beschimpft und niedergemacht. Selbst ein 8 Jähriger hätte ihm besser geholfen als ihr es getan habt, weil der 8-jährige
a) die Frage gelesen hätte
b) er mehr Fachkenntnis gezeigt hätte als ihr es getan habt

4.)wenn ihr selbst keine Ahnung habt von Programmieren, dann haltet einfach die klappe

Zitat:

Code:
int max=(sizeof(array)/sizeof(array));

Was soll das? Was sollte das überhaupt machen, selbst wenn "sizeof(array)" in diesem Kontext Sinn machen würde??? Schreib doch gleich "int max = 1"


du hast recht dass es in dem Kontext keinen wirklichen sinn macht, aber es ergibt nich 1
als beispiel:
char*array[50];
int max=(sizeof(array)/sizeof(array[ 0]))
in max steht dann der Wert 50 ( 200 / 4 = 50 für leute die nich rechenen können)

 5uc|<  /\/\y 5|-|0|275 1|-||2  |\|0085

Greez das Phyxas

Also erst mal an Alle die meinen Ihre Klappe so weit aufreisen

ich hab bei euren gesammelten dummen antworten (ohne den Threateröffner) n paar miese fehler/verhaltenstörungen gefunden

1.) wenn jemand ein problem mit C++ hat schickt ihn nich zu Java. das is wie n Treiberproblem unter Linux und du ihm dann n Windowstreiber gibst, das is dämlich hirnrissig und einfach nur hinterwäldlernievau

Was eine Exception ist sollte eigentlich jeder Informatiker wissen. Mit diesem Wissen ist der Schritt zu ArrayIndexOutOfBounds nicht mehr sooo weit.

2.) KEINER von euch "Intelligenten" Menschen hat erkannt das er kein "echtes" Selectsort programmiert hat.
Also war es unser Fehler ihn darauf hinzuweisen, dass sein Testprogramm, welches ja das Problem demonstrieren sollte, nicht funktionieren kann.

Seine Frage war ja nicht 'Hey wie geht Selection Sort?' sondern 'Hey, da geht das sortieren nicht'.

3.) Zum thema Pisa, KEINER von euch hat auf Seine frage geantwortet dass es ne lösung erreicht gegeben, ihr habt ihn einfach nur beschimpft und niedergemacht. Selbst ein 8 Jähriger hätte ihm besser geholfen als ihr es getan habt, weil der 8-jährige
a) die Frage gelesen hätte
b) er mehr Fachkenntnis gezeigt hätte als ihr es getan habt

Ich meine das habe ich gerade eben ausreichend beantwortet.

Hast du die Frage gelesen?
4.)wenn ihr selbst keine Ahnung habt von Programmieren, dann haltet einfach die klappe

*g*
Wenn du wüßtest mit was für Leuten du hier sprichst.

Zitat:
Code:
int max=(sizeof(array)/sizeof(array));

Was soll das? Was sollte das überhaupt machen, selbst wenn "sizeof(array)" in diesem Kontext Sinn machen würde??? Schreib doch gleich "int max = 1"

du hast recht dass es in dem Kontext keinen wirklichen sinn macht, aber es ergibt nich 1
als beispiel:
char*array[50];
int max=(sizeof(array)/sizeof(array[ 0]))
in max steht dann der Wert 50 ( 200 / 4 = 50 für leute die nich rechenen können)

versuch mal folgendes :
void f( char** arr )
{
    printf( "%d", sizeof( arr ) / sizeof( arr[0] ) );
}

Hinweis:

Wenn der Typ von arr == char** ist (wie in f), dann ist
 sizeof( char** ) / sizeof( char* ) == 1
(lassen wir mal FAR/NEAR calls usw. raus)

Wenn du folgendes machst :
 char* arr[100];
  sizeof( arr ) / sizeof( arr[0] )
dann ist das was anderes, nämlich
 sizeof( char*[100] ) / sizeof( char* )
oder sehe ich das falsch?

Deshalb auch der freundlich fröhliche (implizite) Kommentar, mit Java wärest du schneller am Ziel.

5uc|<  /\/\y 5|-|0|275 1|-||2  |\|0085

Greez das Phyxas

</i>Wow ist das lead.</i>

« Blitzbasic Deutschzufällig zahlenpaare ausgeben in python,tcl oder c »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Header
Die ersten Byte einer Datei werden als Kopf oder Header bezeichnet. Dort befinden sich Informationen zum Datentyp oder der Größe der Datei. Siehe auch Byte....

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...