Berechnung der einzelnen Zifferm einer beliebigen Zahl!

Martin098

Grünschnabel
Hallo Leute,
Ich bin gerade am verzweifeln. Ich versuche ein Programm zu schreiben, dass die einzelnen Ziffern einer beliebig großen Zahl berechnet. zB.: 12-stellige Zahl, Berechnung der Ziffer 1,3,5,7,9,11. Ich weiß zwar, dass ich irgendwie mit dem Modulo Operator rechnen und einer "while" Schleife arbeiten muss aber ich schaffe es nicht dieses Wissen in einen Algorithmus zu verwandeln. Dieses Programm sollte in c (Visual Studio 2013) geschrieben werden! Es wäre sehr nett, wenn mir jemand helfen könnte! :D
 
Hi Martin098

Herzlich willkommen auf Tutorials.de!

Ich weiß nicht, wie es anderen geht, aber ich versteh ehrlich gesagt deine Frage nicht bzw. was du vor hast.
Kannst du dein Vorhaben bitte nochmal in anderen Worten beschreiben? Danke

PS: 11 ist keine Ziffer ;)
 
Hi

was ist eine "beliebig große" Zahl?
int-Variablen und Ähnliches sind nicht beliebig groß.
Woher kommt die Zahl bzw. in welcher Form/Art/Variable liegt sie vor?
(oder gibts da nichts vorgegeben)
 
Ok noch einmal. Also @nico graichen , ich will ein Programm schreiben, in dem ein Benutzer eine Zahl eingibt zb.:401234678978 (12-stellig) und davon will ich mir die 1,3,5,7,9,11 Stelle der Zahl berechnen. Ist es jetzt verständlich was ich meine?
@sheel eine 1,....11,12,13...-stellige Zahl.
 
Also, ich vermute, es gibt kein speziellen Vorgaben,
welche Variablenarten etc. zu verwenden sind.

Vorchlag: Die Eingabe nicht in ein int etc. zu machen,
sondern in einen String (mit einer Ziffer als "Buchstabe" pro Stelle).
Dann braucht man auch kein Modulo, sondern kann in einer Schleife
alle ungeraden Stellen durchgehen.

Zusätzlich wäre es evt. gut, am Anfang noch zu überprüfen,
ob wirklich eine Zahl eingegeben wurde, also ob alle Buchstaben
im String Ziffern zwischen 0 und 9 sind (>='0' && <='9')

C++:
std::string eingabe;
size_t i; //sowas wie ein int

//einlesen
std::getline (std::cin, eingabe);

//jede zweite Stelle ausgeben
for(i = 0; i < eingabe.length(); i += 2)
{
    std::cout << eingabe[i];
}
Vor der Ausgabe sollte noch das überprüfen rein, das überlass ich vorerst dir :)
 
Danke aber ich programmiere c in Visual Studio und habe keinen Plan was "cout" "std::getline (std::cin, eingabe);" "size_t i;" bedeuted :/
 
Hallo Martin098

In C: Eingabe zum Beispiel mit scanf, Ausgabe mit printf. size_t i; deklariert und definiert eine Variable mit dem Namen i vom Typ size_t. Solltest du nicht wissen was das bedeutet -> Nochmals Grundlagen durchlesen.

Viele Grüsse
Cromon
 
Könnte mir jemand vielleicht den oben abgebildeten code in C umwandeln bzw. kann ich was anderes als "size_t" nehmen, da ich noch nicht gelernt habe was das ist? :D
 
Was glaubst du, warum "sowas wie ein int" dabeisteht :rolleyes:
Ist zwar nicht wirklich richtig, aber die Computer und Datenmengen,
für die du dein Programm einsetzt, wird es funktionieren...
und bei Schulaufgaben etc. sollte es in den Lernstadium auch für den Lehrer kein Problem sein
(falls der überhaupt den Unterschied kennt. Ist leider nicht selbstverständlich).
 
Ja ok, aber könnte vielleicht jemand diesen Code in C umschreiben der oben angeführte Code ist für mich wie spanisch ...
 

Neue Beiträge

Zurück