Zahl drehen



  • Hallo,
    ich habe eine Funktion:

    int intarray = 5678;
       int testarray[4];
    
       int x = intarray;
       int i = 0;
       while (x > 0)
       {
          testarray[i++] = x % 10;
          x /= 10;
       }
    
       cout << "Arrays: ";
    
       int b = 0;
    
       while (b<=4)
       {
    
          cout << testarray[b];
          b++;
    
       }
       cout << endl;
    

    (Ich weiß unübersichtlich), das Problem ist das statt 5678 halt 8765 rauskommt, wie kann man die Zahl einmal umdrehen?

    BD


  • Mod

    Kannst du dein Problem genau beschreiben? Ich habe keine Ahnung wo dein Problem liegt, die Zahl wird doch umgedreht?

    Hier ist übrigens dein Code etwas abgekürzt und kompilierbar...

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	int x = 5678;
    	int testarray[4];
    
    	for ( int i = 0; x != 0; ++i)
    	{
    		testarray[i] = x % 10;
    		x /= 10;
    	}
    
    	for( auto i : testarray )
    		cout << i;
    }
    


  • ungetestet:

    unsigned ReverseN(unsigned n, unsigned Base = 10)
    {
    	unsigned Result = 0;
    
    	while(n != 0)
    	{
    		Result *= Base;
    		Result += n % Base;
    		n /= Base;
    	}
    
    	return Result;
    }
    


  • @Arcoth
    Ich kriege aber "Arrays: 87650" raus



  • LightBoom schrieb:

    @Arcoth
    Ich kriege aber "Arrays: 87650" raus

    Weil Du über das Array hinausliest.
    Lern die Grundlagen und such Deine Fehler erstmal selber, bevor Du um Hilfe fragst.


Log in to reply