C++ :: Aufgabe #288 :: Lösung #2
2 Lösungen

#288
Zahlen in Wörtern ausdrücken
Anfänger - C++
von Gisbert5020
- 30.04.2020 um 15:17 Uhr
Schreiben Sie ein Programm, das Zahlen von 0 bis 99 in Wörtern fasst.
Zusatzaufgabe : Erweitern Sie das Programm von 0 bis 1000.
Zusatzaufgabe : Erweitern Sie das Programm von 0 bis 1000.
#2

von 0 (0 Punkte)
- 04.08.2020 um 21:27 Uhr

#include <iostream> std::string strGetEinerName(char iZahl); std::string strGetZehnerName(char iZahl); int main() { std::string strdUnd = "und", strHundert = "hundert", strTausend = "tausend", strInputZahl; std::cout << "Geben Sie eine Zahl von 0 -1000 ein:\n"; std::cin >> strInputZahl; if (strInputZahl._Equal("1")) { std::cout << "eins\n"; } else if (strInputZahl._Equal("11")) { std::cout << "elf\n"; } else if (strInputZahl._Equal("12")) { std::cout << "zwoelf\n"; } else if (strInputZahl._Equal("16")) { std::cout << "sechzehn\n"; } else if (strInputZahl._Equal("1000")) { std::cout << "eintausend\n"; } else { if (strInputZahl.size() > 1 && strInputZahl.size() < 3) { std::cout << strGetEinerName(strInputZahl[1]) << strdUnd << strGetZehnerName(strInputZahl[0]) << "\n"; } else if (strInputZahl.size() > 2 && strInputZahl.size() < 4) { if (((int)strInputZahl[1] - 48) == 0 && ((int)strInputZahl[2] - 48) == 1) { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << "eins\n"; } else if (((int)strInputZahl[1] - 48) == 1 && ((int)strInputZahl[2] - 48) == 1) { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << "elf\n"; } else if (((int)strInputZahl[1] - 48) == 1 && ((int)strInputZahl[2] - 48) == 2) { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << "zwoelf\n"; } else if (((int)strInputZahl[1] - 48) == 1 && ((int)strInputZahl[2] - 48) == 6) { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << "sechzehn\n"; } else if (((int)strInputZahl[1] - 48) > 0) { if (((int)strInputZahl[2] - 48) > 0) { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << strGetEinerName(strInputZahl[2]) << strdUnd << strGetZehnerName(strInputZahl[1]) << "\n"; } else { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << strGetZehnerName(strInputZahl[1]) << "\n"; } } else { std::cout << strGetEinerName(strInputZahl[0])/*Geht auch für die Hunderter*/ << strHundert << strdUnd << strGetEinerName(strInputZahl[2]) << "\n"; } } else if (strInputZahl.size() == 1) { std::cout << strGetEinerName(strInputZahl[0]) << "\n"; } else { std::cout << "Diese Zahl wird nicht Supportet!\n"; } } system("pause"); return 0; } std::string strGetEinerName(char iZahl) { switch (iZahl) { case '1': return "ein"; break; case '2': return "zwei"; break; case '3': return "drei"; break; case '4': return "vier"; break; case '5': return "fuenf"; break; case '6': return "sechs"; break; case '7': return "sieben"; break; case '8': return "acht"; break; case '9': return "neun"; break; } } std::string strGetZehnerName(char iZahl) { switch (iZahl) { case '1': return "zehn"; break; case '2': return "zwanzig"; break; case '3': return "dreissig"; break; case '4': return "vierzig"; break; case '5': return "fuenfzig"; break; case '6': return "sechzig"; break; case '7': return "siebzig"; break; case '8': return "achzig"; break; case '9': return "neunzig"; break; } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1