Frage von exacompta123, 55

(c++) Wie gebe ich eine dezimalzahl rückwärts aus?

Hey Leute, und zwar habe ich eine Frage. Wir müssen in der Schule ein Programm schreiben. Kurz gefasst: wir müssen eine Zahl eingeben und diese soll umgewandelt werden in eine dezimalzahl. Das habe ich schon. Meine Frage: Wie kehrt man die Zahlenfolge wenn zum Beispeil 1100 rauskommt in 0011 um? Wir müssen das mit ARRAY machen? Hat jemand vielleicht eine Idee? mfg :)

Mein Ansatz: (mit visual studio c++)

include "stdafx.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[]) {

  int dez, rest;
  cout << "Geben Sie eine Zahl ein!" <<endl;
  cin >> dez;


  while (dez > 0)
  {
  rest = dez % 2;
  dez=dez/2;
  cout << rest << endl;
  }




system ("pause");
return 0;

}

Antwort
von apophis, 27

Du könntest das Array rückwärts ausgeben.
Voraussetzung dafür ist, dass nur eine Zahl pro Array gespeichert ist.
Bei 1100 also
Array0=1
Array1=1
Array2=0
Array3=0
Gibst Du Array3 zuerst aus und machst rücklaufend weiter, wird die Zahl rückwärts ausgegeben.

Da die Zahl allerdings ja als ganzes eingegeben werden soll, musst Du diese vorher in einzelne Zahlen umwandeln. Mithilfe von Int, dem Teilen durch 10/100/1000 und so weiter, kriegt man das aber hin. Ansonsten findest Du recht schnell entsprechende Formeln dazu.

Kommentar von exacompta123 ,

danke nochmal. Wie soll ich das an meinem Beispiel probieren?

mfg max

Antwort
von DarkNightmare, 38

Hi,

habe lange kein C mehr geschrieben :(

Aber, ich würde mir ein Char Array anlegen und in dieses die Eingabe speichern. Danach kannst du dieses Array einfach rückwärts ausgeben.

Gruß

Antwort
von Nube4618, 28

Zahl in Zeichenkette od. array of char umwandeln. Dann alle Zeichen in einem loop vom letzten bis zum ersten Element ausgeben. So sind alle umgekehrt präsentiert. 

Antwort
von CarolaA, 35

Hi.

Wie wäre es, wenn du das Array einfach von hinten durchläufst, statt von vorne?

Liebe Grüße, CarolaA.

P.S.: Bei weiteren Fragen einfach melden.

Kommentar von exacompta123 ,

Wie meinen Sie das? mit von hinte durchlaufen lassen?

mfg

Kommentar von CarolaA ,

Beispiel:

int countArray = 4; 

int[countArray] array;
array[0] = 0;
array[1] = 0;
array[2] = 1;
array[3] = 1;

for(int i = countArray-1; i >= 0; i--) {
cout << array[i];
}
cout << endl;

Das Ergebnis wäre dann hier 1100, wenn du bei int i = 0 einsetzt und i < countArray sagst, würde 0011 herauskommen.

Und mein Codebeispiel ist das Rückwärtsdurchlaufen eines Arrays. =)

Und hier (http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/011_c_arrays_002.htm) kannst du Initialisieren und wie man Arrays verwendet, nachlesen.

Liebe Grüße, CarolaA.

Kommentar von apophis ,

Nach der Eingabe muss man die Zahl halt nur in die einzelnen Arrays "einteilen".

Kommentar von CarolaA ,

Richtig!

Keine passende Antwort gefunden?

Fragen Sie die Community