Hejka,
Czy ma ktos z Was moze 'pod reka' jakis programik przedstawiajacy liczbe rzeczywista - a konkretnie cenę - w postaci słownej np.
dla 25.99 --> dwa * piec *ZL* dziewiec * dziewiec *GR*
dla 122.00 --> jeden * dwa * dwa *ZL* zero * zero *GR*
i tak dalej...
Jesli tak, prosilbym o wklejenie kodu.
Liczba w postaci slownej
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Liczba w postaci slownej
To program który pobiera liczbę całkowitą w postaci bardziej słownej niż chcesz. Użyj funkcji modf do liczby double (float), chcesz to pogrzeb w tablicach, dopisz pare linijek i masz program
Kod: Zaznacz cały
#include <iostream>
using namespace std;
string jednosci[] = {"", " jeden", " dwa", " trzy", " cztery", " piec", " szesc", " siedem", " osiem", " dziewiec"};
string nascie[] = {"dziesiec", " jedenascie", " dwanascie", " trzynascie", " czternascie", " pietnascie", " szesnascie", " siedemnascie", " osiemnascie", " dziewietnascie"};
string dziesiatki[] ={"", " dziesiec", " dwadziescia", " trzydziesci", " czterdziesci", " piecdziesiat", " szescdziesiat", " siedemdziesiat", " osiemdziesiat", " dziewiecdziesiat"};
string setki[] = {"", " sto", " dwiescie", " trzysta", " czterysta", " piecset", " szescset", " siedemset", " osiemset", " dziewiecset"};
string x[] = {"", " tys.", " mln.", " mld.", " bln.", " bld."};
main()
{
int t,n;
long long liczba;
cin>>t;
while(t--)
{
int koncowka;
int rzad = 0;
int j = 0;
int minus = 0;
cin>>liczba;
string slownie = "";
if (liczba==0) slownie="zero";
while (liczba>0)
{
koncowka=(liczba%10);
liczba/=10;
if ((j==0)&&(liczba%100!=0 || liczba<100)) slownie.insert(0,x[rzad]);
if ((j==0)&&(liczba%10!=1)) slownie.insert(0,jednosci[koncowka]);
if ((j==0)&&(liczba%10==1))
{
slownie.insert(0,nascie[koncowka]);
liczba/=10;
j+=2;
continue;
}
if (j==1) slownie.insert(0,dziesiatki[koncowka]);
if (j==2)
{
slownie.insert(0,setki[koncowka]);
j=-1;
rzad++;
}
j++;
}
cout<<slownie<<endl;
}
}