Hallo und zwar versuche ich ein Programm zu schreiben, welches mir eingegebene Zahlen in Worten ausgibt.
Bis 99 klappt das bisher mit meinem Programm, mein Problem ist nun wie mach ich das mit den "hundertern" genau?
Wenn ich eine dreistellige Zahl durch modulo 100 teile bekomme ich die letzten beiden Zahlen, doch irgendwie weiß ich nun nicht weiter, bei meiner Ausgabe kommt jetzt erstmal nur als Beispiel 456 vierhundert raus.
Wie müsste meine Funktion geändert werden damit der Rest auch noch ausgegeben wird (Zeile 21 denke ich muss ich irgendwie modifizieren)
schon mal Danke für Tipps
Edit: okay hab es selbst gelöst hab nun nur noch paar Probleme mit der Zwanzig und paar anderen Ausnahmen.
Bis 99 klappt das bisher mit meinem Programm, mein Problem ist nun wie mach ich das mit den "hundertern" genau?
Wenn ich eine dreistellige Zahl durch modulo 100 teile bekomme ich die letzten beiden Zahlen, doch irgendwie weiß ich nun nicht weiter, bei meiner Ausgabe kommt jetzt erstmal nur als Beispiel 456 vierhundert raus.
Wie müsste meine Funktion geändert werden damit der Rest auch noch ausgegeben wird (Zeile 21 denke ich muss ich irgendwie modifizieren)
schon mal Danke für Tipps
Edit: okay hab es selbst gelöst hab nun nur noch paar Probleme mit der Zwanzig und paar anderen Ausnahmen.
Java:
public class ZahlenAusg {
static String[] einer = {
"null", "eins", "zwei", "drei", "vier",
"fünf", "sechs", "sieben", "acht", "neun",
"zehn", "elf", "zwölf", "dreizehn", "vierzehn",
"fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn"
};
static String[] zehner = {
null, null, "zwanzig", "dreißig", "vierzig", "fünfzig",
"sechzig", "siebzig", "achtzig", "neunzig"
};
static String ZahlenInWorte(int Zahl) {
if (Zahl >= 100) {
int z = Zahl % 100;
int e = z % 10;
return einer[Zahl/100]+"hundert"+einer[e]+"und"+zehner[z/10];
}
else if(Zahl >= 20) {
int n = Zahl % 10;
return (ZahlenInWorte(n)) + "und" + zehner[Zahl/10];
}
else return einer[Zahl];
}
}
Zuletzt bearbeitet: