Witam!
class Kalkulator
{
public:
string liczba1;
string liczba2;
int dlugosc1;
int dlugosc2;
int liczb_wiecej;
void wczytaj_liczby();
void odejmowanie();
};
void Kalkulator::odejmowanie()
{
string wynik;
int odejmowanie;
for (int i=1; i<=liczb_wiecej; i++)
{
if (liczba1[dlugosc1-i] < liczba2[dlugosc2-i])
{
odejmowanie =
((i<=dlugosc1) ? (liczba1[dlugosc1-i] - 48)+10 : 0)
-
((i<=dlugosc2) ? (liczba2[dlugosc2-i] - 48) : 0) ;
liczba1[dlugosc1-i-1] -= 1;
}
else
{
odejmowanie =
((i<=dlugosc1) ? (liczba1[dlugosc1-i] - 48) : 0)
-
((i<=dlugosc2) ? (liczba2[dlugosc2-i] - 48) : 0) ;
}
wynik = char (( odejmowanie % 10 ) +48 ) + wynik;
}
cout<<"\nWynik odejmowania to: "<<wynik<<endl;
}
O to mój kod na odejmowanie na stringach.
Wszystko działa, oprócz dwóch rzeczy:
1. Odejmowanie mniejszej liczby od większej. Jak uzyskać wynik na minusie?
2. Jak usunąć niepotrzebne zera na początku wyniku?
Pozdrawiam i z góry dziękuje za pomoc :)