PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahl zerlegen?


T101
2006-05-31, 22:21:12
Hallo,

wie kann ich in C eine z.B dreistellige Zahl in drei einzelne Zahlen zerlegen? z.B 489 in 4, 8 und 9.

Kenn mich in C nicht so gut aus.

Coda
2006-05-31, 22:22:33
Hat die Zahl immer drei Stellen?

maprie
2006-05-31, 22:28:16
Du kannst die Zahl mit itoa() in einen String umwandeln und den dann zeichenweise ansprechen oder stufenweise durch 10 teilen, die Reste sind dann deine gesuchten Ziffern.

itoa(): http://www.cplusplus.com/ref/cstdlib/itoa.html

Nachtrag: Oder mit sprintf() in einen Puffer schreiben.

Coda
2006-05-31, 22:36:11
itoa ist keine Standardfunktion.

HajottV
2006-05-31, 22:42:51
T101[/POST]']Hallo,

wie kann ich in C eine z.B dreistellige Zahl in drei einzelne Zahlen zerlegen? z.B 489 in 4, 8 und 9.

Kenn mich in C nicht so gut aus.

So in der Art?


int eingabe = 489;

while (eingabe) {
printf("%i ", eingabe % 10);
eingabe /= 10;
}


Gruß

Jörg

T101
2006-05-31, 23:06:01
Die Zahl ist immer dreistellig und soll dann in drei Variablen abgespeichert werden , um sie dann mit anderen dreistelligen Zahlen vergleichen zu können.

Aqualon
2006-05-31, 23:46:26
Ähm... wie soll der Vergleich denn aussehen, dass das nicht direkt geht?

Aqua

T101
2006-05-31, 23:55:46
Es wird eine dreistellige Zufallszahl erzeugt und die soll dann dann erraten werden.
Mit drei einzelnen Zahlen läuft das schon, jetzt will ich das noch ein wenig verbessern.

Aqualon
2006-06-01, 00:07:47
int input = 489;
int a = input%10;
int b = (input/=10)%10;
int c = (input/=10)%10;
Dann machs so, c ist dann 4, b 8 und a 9; Besser wär natürlich ein Array und ne Schleife.

int input = 489;
int split[3];

for(int i=2;i>=0;i--) {
split[i] = input%10;
input/=10;
}
Das kannst dann auch leichter erweitern, wenn die Zahl nicht mehr dreistellig sein soll.

Aqua

Coda
2006-06-01, 00:23:07
T101[/POST]']Es wird eine dreistellige Zufallszahl erzeugt und die soll dann dann erraten werden.
Äh. Wie wärs einfach mit input1*100 + input2*10 + input3 und dann vergleichen? :confused:

del_4901
2006-06-01, 00:29:47
Coda[/POST]']Äh. Wie wärs einfach mit input1*100 + input2*10 + input3 und dann vergleichen? :confused:

einfache logic ist meißt die Beste ^^

Neomi
2006-06-01, 11:49:20
Coda[/POST]']Äh. Wie wärs einfach mit input1*100 + input2*10 + input3 und dann vergleichen? :confused:

Ich denke eher, er möchte auch Zwischenergebnisse wie z.B. "zwei Ziffern richtig" haben.

#44
2006-06-01, 12:59:23
Neomi[/POST]']Ich denke eher, er möchte auch Zwischenergebnisse wie z.B. "zwei Ziffern richtig" haben.

MMN macht ohne Zwischenergebniss ein zerlegen nichtmal sinn ;)

Denn dann könnte man gleich "if input = generiertezufallszahl" als code verwenden.

T101
2006-06-01, 19:33:54
Muss mich korrigieren:
Es soll eine dreistellige Zufallszahl erzeugt werden und die soll dann erraten werden.
Richtige Zahl an falscher Position und an richtiger Position sollen angezeigt werden.
Die dreistellige Zufallszahl soll zerlegt werden.
Weiß jetzt wie es geht.

Danke für die Antworten!