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. ---> Ausgabealso 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