Hilfe bei einer Aufgabe

Shirito

Grünschnabel
Hy

Ich habe ein Problem bei einer Aufgabe würde mich freuen wenn ihr mir helfen könntet.

Die Aufgabe lautet:
Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe einer Zahl auffordert. Das Programm soll daraufhin die Reihenfolge der Ziffern in der Zahl umdrehen - beispielsweise soll 1234 in 4321 umgewandelt werden. Das Umdrehen der Reihenfolge der Ziffern soll in einer eigenen Funktion erfolgen, die keinen Rückgabewert besitzt und einen Parameter erwartet. Die Ausgabe der umgedrehten Zahl auf den Bildschirm soll in der Funktion main() erfolgen.

danke schonmal im vorraus.
 
Müsste so eigentlich richtig sein :D

C++:
#include <sstream>
#include <iostream>
#include <string>

std::string int__str( int foo ) {

std::ostringstream outstr;

outstr << foo;

return outstr.str();

    }

void strReverse(std::string str) {

    for (std::string::reverse_iterator i=str.rbegin(); i<str.rend(); i++) {
        std::cout << *(i);
    }

     }

int main(){
int zahl = 0;

std::cin >> zahl;

strReverse(int__str(zahl));

}
 
Hallo,

@KD3
Das ist keine Hilfe. Das ist die Komplett-Lösung.

@Shirito
Hier im Forum wird auf Eigeninitiative Wert gelegt. Also es wäre gut, wenn du dir schon mal selbst Gedanken gemacht hast. Wenn der Code nicht funktioniert, kannst du dann deinen Code posten und dann kann man helfen den Fehler zu finden.
So wie KD3 es jetzt gemacht hat, ist es wenig sinnvoll. So ist der Lerneffekt gleich null.

MFG

Sascha
 
@Sascha Schirra

Sorry, ich hätte eigentlich nur die nötigen Links @cplusplus.de verweisen sollen. Werde in Zukunft dran denken.

@CSANecromancer

Hast recht :D Die Funktion strReverse wäre bei dieser Aufgabe sinnlos gewesen.
 
Hy

Also mein bisheriger Code war:
#include<iostream>
using namespace std;

int Zahl;
int Umdrehung[2];

void set(int Umdrehung[2])
{
Umdrehung[0]=Zahl/10;
Umdrehung[1]=Zahl%10;
}

int main()
{
cout<<"Bitte geben sie eine zweistellige Zahl ein\n";
cin>>Zahl;

cout<<"Die umgedrehte Zahl lautet\n";
for(int i=2;i>0;--i)
{
cout<<Umdrehung[i-1]<<"\n";
}

cin.get();
system("PAUSE");
}

Das Problem ist das ich am Ende immer nur zwei nullen raus kriege.
 
Zuletzt bearbeitet:
Eigentlich ist das eher kein C++ Standard sogesehen aber naja.....

C++:
#include<iostream>
using namespace std;

int Zahl;
int Umdrehung[1];

int const *set(int Zahl)
{
Umdrehung[1];
Umdrehung[0]=Zahl/10;
Umdrehung[1]=Zahl%10;
return Umdrehung;
}

int main()
{
cout<<"Bitte geben sie eine zweistellige Zahl ein\n";
cin>>Zahl;
set(Zahl);
cout<<"Die umgedrehte Zahl lautet\n";
for(int i=2;i>0;--i)
{
cout<<Umdrehung[i-1];
}

cin.get();
system("PAUSE");
}
 
Zuletzt bearbeitet:
Da er mit einer Funktion ohne Rückgabewert arbeiten soll, die Funktion aber ein Resultat
liefern soll, welches in main() ausgegeben werden soll, würde ich zu Referenzen raten.

Alla:
C++:
void set( int &Zahl ) {
    // Zahl umdrehen
}

int main( int argc, char **argv ) {
    int Zahl = 0;
    // Zahl holen
    set( Zahl );
    // Zahl ausgeben
}

Soll doch besimmt eine übung zu Referenzen sein?
Einfach gesehen hast du mit einer Referenz als Funktionsparameter nicht eine Kopie
der übergebenen Variable, sondern die Variable selbst,sodass wenn du sie innerhalb der
Funktion verändertst, gleichzeitig auch außen geändert ist.

Best wishes
FBIagent

EDIT: Es scheint das das Board ein paar kleine Probleme hat? Wenn ich einen Post
schreibe, editiere und zitiere habe ich haufenweise HTML code in der Textarea. Und wenn
ich meinen fein säuberlich foprmatierten text abschickte nimmt der keine Zeilenumbrüche.
Firefox 3

EDIT 2: Ok liegt an Firefox 3.Ich habe das ganze nochmal mit dem IE7 reingestellt.
 
Zuletzt bearbeitet:
@KD3: Wasn dasn fürn Code?
C++:
Umdrehung[2];
du greifst auf das 3. Element zu, der Array besteht nur aus 2 Elementen! Wird zwar sehr wahrscheinlich wegoptimiert, aber dennoch müll!
 
Zurück