C++ Problem

04/08/2008 18:35 CracKPod#1
Hallo in meinem Tutorial gibt es folgende Aufgabenstellung zum Kapitel "Operatoren":
1. Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe von drei Zahlen auffordert. Das Programm soll den Wert 10 zur ersten eingegebenen Zahl hinzuaddieren, das Ergebnis mit der zweiten eingegebenen Zahl multiplizieren und dann durch die dritte eingegebene Zahl dividieren. Die Berechnung soll hierbei innerhalb einer einzigen Code-Zeile erfolgen. Das Ergebnis soll auf den Bildschirm ausgegeben werden. Hinweis: Zum Umwandeln einer Zahl innerhalb eines Arrays vom Typ char benötigen Sie die Funktion atoi(). Dieser Funktion übergeben Sie das Array zwischen den runden Klammern und erhalten als Rückgabewert eine Zahl vom Typ int.
2. Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe einer vierstelligen Zahl auffordert. Das Programm soll daraufhin die Quersumme der vierstelligen Zahl errechnen und das Ergebnis dann auf den Bildschirm ausgeben. Hinweis: Je nach Lösungsansatz benötigen Sie wie in Aufgabe 1 die Funktion atoi() zum Umrechnen von Zahlen innerhalb eines Arrays vom Typ char in Werte vom Typ int.
1. Habe ich so gelöst:

Code:
#include <iostream>

using namespace std;

int main()
{
    int zahl1, zahl2, zahl3, ergebnis;
    cin >> zahl1;
    cin >> zahl2;
    cin >> zahl3;
  
    cout << (zahl1 + 10) * zahl2 / 2 << endl;
    system("PAUSE");
}
bei 2. habe ich jetzt Probleme.

Code:
#include <iostream>

using namespace std;

int main()
{
    char eingabe[3];
    int zahl;
    
    cin >> zahl;
    zahl = atoi(eingabe[0] + eingabe[1] + eingabe[2] + eingabe[3]);
    
    cout << zahl << endl;
    system("PAUSE");
}
Ich bekomme die Fehlermeldung: "invalid conversion from `int' to `const char*' ".

Hrmm aber wie soll ich sonst angeben das ich nur die Zahl an einer bestimmten Position eines char arrays mit einer anderen addieren will?

mit static_cast<int> habe ich es auch schon probiert, bekomme aber irgendwie -110 raus etc.

Was mache ich falsch?

Würde mich sehr über hilfe freuen, danke!

MfG,
CracKPod
04/08/2008 19:14 mr.rattlz#2
:<

Da warst du wohl eindeutig schneller als ich, und ich glaube ich habe außerdem Müll geschrieben :(

Ich nutze diesen Platz für ein diffamierendes Zitat:
Quote:
Originally Posted by Niklaus Wirth
C++ is an insult to the human brain.
04/08/2008 19:29 CracKPod#3
Hmm, wen meinst du? *nur deinen Post sehe*
04/08/2008 19:51 CracKPod#4
Code:
#include <iostream>

using namespace std;

int main()
{
    char eingabe[3];
    int zahl;
    
    cin >> eingabe;
    zahl = atoi(eingabe);
    
    //Quersumme berechnen!
    //cout << quersumme << endl;
    
    system("PAUSE");
}
Schau comments ^^. Ich habe keine Ahnung wie ich einen int splitten soll...
Tut mir Leid, ich bin auch noch ziemlich neu in C++ und bei meinem Tutorial (eigentlich) erst bei Operatoren ^^.

MfG,
CracKPod

Achso.. du machst das mit einer Schleife die solange durchläuft bis sie beim letztem Buschtaben des Strings ist und den Pointer auf a dann dynamisch wechselt durch die inkrementierung von i...

Das sollte ich aber noch net können :P! Da muss es ne andere Lösung geben eine Sekunde...

[Only registered and activated users can see links. Click Here To Register...] -> Kapitel 3.11 Aufgaben (Nr.2)
04/08/2008 20:35 CracKPod#5
Hmm oke.. dann liegts wohl am Verfasser.

Achja
Wenn du Bock auf nen nervigen kleinen Arsch (mich) hast der dich andauernd mit unwichtigen Fragen zuballert in Bereich C++ etc. fände ich es sehr nett wenn du mich in deine ICQ Liste aufnehmen könntest. (414059439)

MfG,
CracKPod