Witam ponownie, dopiero po kilku dniach przerwy mogłem znów zasiąść do tego zadania ale znów coś przekombinowałem :/
for (map<int,string>:: reverse_iterator ritr = inWords.rbegin() ; ritr != inWords.rend() ; ritr++)
{
if(liczba == ritr->first)
{
cout << ritr -> second;
}
if ((liczba > 20) && (liczba != ritr -> first))
{
do
{
wynik = liczba % mnoznik;
//cout << "wynik: "<< wynik << endl;
liczba = liczba - wynik;
//cout << " liczba: " << liczba << endl;
mnoznik *= 10;
for (map<int,string>:: reverse_iterator ritr = inWords.rbegin() ; ritr != inWords.rend() ; ritr++)
{
if(wynik == ritr -> first)
{
cout << ritr -> second << " ";
}
if(liczba == ritr -> first)
{
cout << ritr -> second << " ";
}
if((wynik >= 1000)&&(wynik < 1000000))
{
wynik /= 1000;
cout << "tys.";
}
if((wynik >= 1000000)&&(wynik < 1000000000))
{
wynik /= 1000000;
cout << "mln.";
}
if((wynik >= 1000000000)&&(wynik < 1000000000000))
{
wynik /= 1000000000;
cout << "mld.";
}
if((wynik >= 1000000000000)&&(wynik < 1000000000000000))
{
wynik /= 1000000000000;
cout << "bln.";
}
}
}
while((wynik > 0)&&(liczba > 0));
Nie dość, że odczytuje od tyłu (tutaj rozumiem bo odcina po kolei liczby)to miesza się przy pełnych liczbach 12000000 itp. i dopisuje za często przedrostki tys. mln. itd :/