Programmieranfänger, Programm funktioniert nicht



  • HI,

    sitze schon länger an einem Problem fest und wollte mal nahc tips fargen.

    Ich möchte ein PRogramm schreiben bei dem ein Satz folgendermaßen umstrukturiert wird:

    Ein Vogel sitzt auf einem Baum. ---> Eingabe
    iE noVeg liszt tua fieen maBmu. ---> Ausgabe

    also es werden immer die zwei nebeneinander liegeden Buchstaben vertauscht.

    Mein Programmtext sieht folgendermaßen aus:

    char a[1000], speicher;
    m_Eingabe.GetWindowTextA(a, 1000);
    int i,m,n;
    for (n=0; n != 1000; n= n + 1)
    {
    if (a[n] == '\0') { m=n;}
    }

    for (i=0; i==m; i=i+2)
    {
    speicher = a[i];
    a[i] = a[i++];
    a[i++] = speicher;
    }
    m_Ausgabe.SetWindowTextA(a);

    Bitte um Hilfe bin neu in der Welt des Programmierens. Momentan wir das Eingabefeld einfach "kopiert" und der ausgabe übergeben ohne umgestellt zu werden.

    MFG Schwebbes



  • Und wo ist das Problem?



  • Fellhuhn schrieb:

    Und wo ist das Problem?

    Ganz Klar: Er möchte einen Deutsch/Tschechisch Übersetzer programmieren.



  • for (i=0; i==m; i=i+2)
    =>
    for (i=0; i<m-1; i=i+2)



  • Bitte nächstes Mal die C++ - Tags verwenden, dann sieht der Code besser aus...

    dein Fehler liegt in diesem Teil:

    for (i=0; i==m; i=i+2)    // i==m ist false, daher wird die schleife nicht ausgeführt
    {
       speicher = a[i];
       a[i] = a[i++];              // So kommt nicht das richtige Ergebnis raus, was
                                   // du meinst ist a[i+1]
       a[i++] = speicher;          // hier nochmal das gleiche Problem
    }
    

    richtig sieht der Teil also so aus:

    for (i=0; i<=m; i=i+2)
    {
       speicher = a[i];
       a[i] = a[i+1];
       a[i+1] = speicher;
    }
    


  • for (i=0; i<=m; i=i+2)
    {
      std::swap ( a[i], a[i+1] );
    }
    


  • drakon schrieb:

    for (i=0; i<=m; i=i+2)
    {
      std::swap ( a[i], a[i+1] );
    }
    

    mit i<m-1 (wie Fellhuhn es geschrieben hat) statt i<=m wäre es besser.

    Lars



  • Scheint wohl so. Ich habe mich eigentlich nur das swap reinbringen wollen.



  • Danke für die Antworten hab meine Fehler verstanden 🙂 und zugleich ne neue fkt. gelernt 🙂


Log in to reply