umrechnen einer vierstelligen zahl
-
hi leute ,
bin neu hier und habe grade mit c++ angfungen doch nun habe ich ein problem und zwar möchte ich eine viestelliege zahl die ich mit cin einlese in 4 einzelne zahlen aufteilen.Kann mir da jemand helfen?
eine gute erklärung mit einen beispiel wär echt super.dank im vorraus
proximus
-
In welcher Form sind die vier Ziffern vorhanden?
-
Hi
Einfaches Umrechnen und runden mit Hilfe von 10er Potenzen ( Stichwort Zahlendarstellung padischer Bruch, Otto Forster: Analysis 1).
#include <iostream.h> int main(int argc,char** argv) { float a; cout << "4 stellige zahl eingeben:"; cin >> a; cout << a; /* n steht für natürliche Zahle */ int n0 = (int) a - ( ((int) a/10 )* 10); int n1 = (int) a/10 - ( ((int) a/100 )* 10); int n2 = (int) a/100 - ( ((int) a/1000 )* 10); int n3 = (int) a/1000 - ( ((int) a/10000 )* 10); cout << "n0=" << n0 << " n1=" << n1 << " n2=" << n2 << " n3=" << n3 <<"\n"; }
Wobei die n's nach den entsprechenden 10er Potenzen sortiert sind. D.h.:
UserEingabe = 10°0 * n0 + 10°1 * n1 + 10°2 * n2 + 10°3 *n3
Man ist das 10er System toll.
mfg
tom
-
std:string zahl; std::cin >> zahl; std::cout << "n0="<< zahl[0] << ...
-
und noch eins
int x; cin >> x; int n0 = x/1000 % 10; int n1 = x/100 % 10; int n2 = x/10 % 10; int n3 = x % 10;
-
und noch ne Möglichkeit...
#include <iostream> #include <string> using namespace std; int main(void) { string str; cout << "4 stellige zahl eingeben:"; cin >> str; int zahl[4]; if (str.length() >= 4) { zahl[0] = str.at(0) - '0'; zahl[1] = str.at(1) - '0'; zahl[2] = str.at(2) - '0'; zahl[3] = str.at(3) - '0'; } cout << "Ergebnis = " << zahl[0] << " " << zahl[1] << " " << zahl[2] << " " << zahl[3] << endl; return 0; }
-
TaCCo schrieb:
if (str.length() >= 4) { zahl[0] = str.at(0) - '0'; zahl[1] = str.at(1) - '0'; zahl[2] = str.at(2) - '0'; zahl[3] = str.at(3) - '0'; }
Gutes Beispiel für die unnötige Verwendung von at()...
-
Wenn sein string::operator[] nicht assert()et, gibt's immerhin leichter verständlichen Radau, falls er die 4 durch was Anderes ersetzt und den Rest vergisst etc. - durch sowas Blödes habe ich schon mehr Zeit verschwendet als die vier Bereichsüberprüfungen in dem Code, der ruhig lahm sein kann, jemals benötigen werden...
-
he spitze leute vielen dank für eure hilfemfg
proximus