Witam, piszę program mający na celu wykorzystanie switch'a i case'ów. Program ten powinien brać od użytkownika liczbę i zamieniać ją na tekst (np. 1 na jeden 10 na dziesięć itd.). Do setek wszystko działało ale po dopisaniu tysięcy kompilator zaczął błędnie wyświetlać setki poprzedzone tysiącami (np. 9900 - zamiast dziewięć tysięcy dziewięćset wyświetla się samo dziewięć tysięcy). Czy ktoś mógłby udzielić mi wskazówki lub poprawić kod? Z góry dziękuję za pomoc :)
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, liczba;
//a-jednosci b-dziesiatki c-setki d-tysiace
cout << "Podaj swoja liczbe!\n";
cin >> liczba;
a = liczba % 10;
b = (liczba % 100) / 10;
c = liczba / 100;
d = liczba / 1000;
switch (d)
{
case 1: cout << "tysiac "; break;
case 2: cout << "dwa tysiace "; break;
case 3: cout << "trzy tysiace "; break;
case 4: cout << "cztery tysiace "; break;
case 5: cout << "piec tysiecy "; break;
case 6: cout << "szesc tysiecy "; break;
case 7: cout << "siedem tysiecy "; break;
case 8: cout << "osiem tysiecy "; break;
case 9: cout << "dziewiec tysiecy "; break;
}
switch (c)
{
case 1: cout << "sto "; break;
case 2: cout << "dwiescie "; break;
case 3: cout << "trzysta "; break;
case 4: cout << "czterysta "; break;
case 5: cout << "piecset "; break;
case 6: cout << "szescset "; break;
case 7: cout << "siedemset "; break;
case 8: cout << "osiemset "; break;
case 9: cout << "dziewiecset "; break;
}
if (b == 1)
{
switch (a)
{
case 0: cout << "dziesiec"; break;
case 1: cout << "jedenascie"; break;
case 2: cout << "dwanascie"; break;
case 3: cout << "trzynascie"; break;
case 4: cout << "czternascie"; break;
case 5: cout << "pietnascie"; break;
case 6: cout << "szesnascie"; break;
case 7: cout << "siedemnascie"; break;
case 8: cout << "osiemnascie"; break;
case 9: cout << "dziewietnascie"; break;
}
}
else
{
switch (b)
{
case 2: cout << "dwadziescia "; break;
case 3: cout << "trzydziesci "; break;
case 4: cout << "czterdziesci "; break;
case 5: cout << "piecdziesiat "; break;
case 6: cout << "szescdziesiat"; break;
case 7: cout << "siedemdziesiat "; break;
case 8: cout << "osiemdziesiat "; break;
case 9: cout << "dziewiecdziesiat "; break;
}
switch (a)
{
case 1: cout << "jeden"; break;
case 2: cout << "dwa "; break;
case 3: cout << "trzy "; break;
case 4: cout << "cztery"; break;
case 5: cout << "piec "; break;
case 6: cout << "szesc "; break;
case 7: cout << "siedem "; break;
case 8: cout << "osiem "; break;
case 9: cout << "dziewiec"; break;
}
}
}