Einfaches Programm Umkehrzahl
-
Hallo,
eine einfach Frage.
Es soll die Umkehrzahl gebildet werdenz.B 12345
ergibt 54321
Hab zwar eine Lösung mit
{
int wert,wert1,wert2,wert3,wert4,wert5;printf("Vierstellige Zahl eingeben:");
scanf("%i",&wert);
wert1=wert/1000;
wert2=wert%1000/100;
wert3=wert%100/10;
wert4=wert%10;
wert5=wert1+wert2*10+wert3*100+wert4*1000;
printf("Umkehrwehrt von %i ist: %i\n",wert,wert5);return 0;
}aber gibt es da nicht auch eine elegante lösung mit einer Schleife, sonst muss ich ja bei einer 15 stelligen Zahl einen ewigen code eingeben.
Danke im Vorraus
-
Du kannst die Zahl als String einlesen und dann per reverse() umdrehen.
Oder du verwendest eine Schleife:
int zahl=...,uzahl=0; vector<int> stellen; while(zahl>0) { stellen.push_back(zahl%10); zahl/=10; } for(int i=0;i<stellen.size();++i) uzahl=10*uzahl+stellen[i];
-
Bloodysunday schrieb:
Hallo,
eine einfach Frage.
Es soll die Umkehrzahl gebildet werdenz.B 12345
ergibt 54321
Hab zwar eine Lösung mit
{
int wert,wert1,wert2,wert3,wert4,wert5;printf("Vierstellige Zahl eingeben:");
scanf("%i",&wert);
wert1=wert/1000;
wert2=wert%1000/100;
wert3=wert%100/10;
wert4=wert%10;
wert5=wert1+wert2*10+wert3*100+wert4*1000;
printf("Umkehrwehrt von %i ist: %i\n",wert,wert5);return 0;
}aber gibt es da nicht auch eine elegante lösung mit einer Schleife, sonst muss ich ja bei einer 15 stelligen Zahl einen ewigen code eingeben.
Danke im v******
Vielleicht suchst du so was einfaches:
long int reversi(long int z) { long int r = 0; while (z != 0) { r = r * 10 + z % 10; z /= 10; } return r; }vg tesu