Newbie Aufgabe bitte anschauen!!
-
Mal ein kleiner Ansatz:
#include <iostream> using namespace std; int main() { char str[10]; // ... Tastatureingabe in str rein schreiben int num = ... int len = ... cout << num / len << endl; }Jetzt musst du nur noch was für die "..." rein schreiben, dann bist du fertig

-
Danke für den Ansatz, aber es sollte eine char ziffernkette eingelesen werden und dann in eine Integerzahl konvertiert werden. es ist nicht sinn und zweck der sache die angaben im quellcde einzubinden. es soll erst einmal von der tastatur mit cout und cin eingelesen werden und, dann kommt erst die konvertierung. zum schluss muss man dann in jedem Fall strlen benutzen um immer die richtige länge zu haben, was ja auch nicht so schwierig ist, aber bei dieser verdammten umwandlung bleib ich hängen! ich weis nicht wie ich es machen soll
-
ludga schrieb:
Mit den Funktionen atoi oder strtol komm ich auch nicht weiter.
Geht's auch ein wenig genauer?
-
Hier mein Vorschlag. Da du aber was lernen sollst, habe ich bei der Konvertierung der einzelnen Stellen in die Integerzahl einen kleinen Fehler eingebaut, die Lösung solltest du selber finden ;-).
#include <iostream> #include <cmath> using namespace std; int main() { char zahlen[10], *zp = zahlen; cout << "Bitte eine Zahl mit maximal 9 Stellen eingeben (mehr Stellen werden ignoriert)\n"; // Einlesen while( cin.get(*zp) && (*zp != '\n') && (zp-zahlen) < 9) ++zp; int iZahl = 0, len = zp-zahlen; for( int i = 0; i < len; ++i ){ int exponent = len-i-1; // In der folgenden Zeile stimmt etwas nicht ;-) iZahl += zahlen[i]*pow(10.0,exponent); // Hilft vielleicht beim Loesen des Problems // Tip: Als Eingabe 12345... probieren cout << (int)zahlen[i] << " "; } cout << endl << "Eingegebne Zahl: " << iZahl << endl; double z = (double)iZahl / len; cout << "Zahl durch Anzahl der Stellen " << z << endl; return 0; }
-
Leider nicht, noch hab ich zu wenig ahnung von der ganzen materie, ich hab nur
in einem buch gelesen, dass so strings in integerzahl konvertiert werden können.
-
Am besten sagst du dem Lehrer das du es nicht kannst und keine Lust hast dir es beizubringen.
-
Danke Fehlerteufel, ber ich hab da noch ne Frage:
was bedeutet zp-zahlen,*zp ist doch nur ne deklaration, oder?
und wieso exponent, wird darüber die eine integerzahl bestimmt?
-
Ich nehme mal an, du meinst die Zeile
char zahlen[10], *zp = zahlen;"zahlen" ist ein Array mit Platz für zehn Zeichen. "zp" ist ein Zeiger auf ein Zeichen (char), der zu Anfang auf das erste Zeichen von "zahlen" zeigen soll.
(achja, zur Umwandlung empfehle ich einen Blick in die C++-FAQ, da gibt es elegantere Lösungen ;))
-
CStoll schrieb:
(achja, zur Umwandlung empfehle ich einen Blick in die C++-FAQ, da gibt es elegantere Lösungen ;))
Natürlich gibt es da elegantere Möglichkeiten (und er hat ja auch schon davon gesprochen), aber da lernt man deutlich weniger. Aber wenn er noch nicht mal die einfache Zeigerarithmetik versteht, sollte er meinen Code eh nicht abgeben, da sein Lehrer sofort sehen würde, dass es nicht von ihm ist.
-
vielleicht helfen Dir ein paar mathematischen Grundlagen weiter.
- eine zahl mit 10 multiplizieren heißt alle ziffern um 1 nach links schieben und 'ne 0 ranhängen.
- wenn eine zahl auf 0 endet, und Du eine ziffer dazuaddierst, dann endet die zahl genau auf diese ziffer.
Du kannst also Deine eingelesene Ziffernkette zeichen für zeichen abarbeiten.
Außerdem sind die Ziffern hintereinander angeordnet (askii) d.h. '0' + 5 = '5'
('x' ist ein char). einfaches umstellen der gleichung sollte Dir 'nen tip geben, wie man aus einem Char eine Zahl bekommen kann.Viel Spaß und durchhalten, jeder fängt mal an...