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
