Witam, piszę program, który ma z pliku pobrać 2 liczby w systemie trójkowym (l1 i l2) dodać je i wypisać sumę. Liczby są na tyle długie, że muszę używać typu string. tworzę trzecią zmienną, która ma przechowywać wynik (docelowo będę musiał to wpisać do pliku) i ma dlugość o 1 większą od dłuższego wyrazu który dodaje. wiem jak to logicznie powinno przebiegac, umiem dodawac pisemnie w trójkowym, ale nie wiem czemu to nie działa. Prosze o pomoc.
ifstream plik("pary_2.txt");
string l1;
string l2;
plik>>l1;
plik>>l2;
int dlugosc;
if(l1.length()>l2.length()) {dlugosc=l1.length()+1;}
else {dlugosc=l2.length()+1;}
char nowy[dlugosc];
int i1=l1.length()-1; //indeksy
int i2=l2.length()-1;
int in=dlugosc-1;
int n=0; //zmienna ktora bedzie przechowywac obliczana sume, ktora bedzie trzeba wpisac do zmiennej "nowy"
while(in>=0) // petla ktora ma dodawac
{
if (i1>=0) n+=(int)l1[i1]-48; //dodaje ostatnie cyfry
if (i2>=0) n+=(int)l2[i2]-48;
nowy[in]=n%3; //na ostatnim miejscu zostawia reszte z dzielenia
n=n/3; // to jest to co przenosi dalej, na kolejne miejsca
i1--;
i2--;
in--;
}
for(int i=0;i<dlugosc;i++)
{
cout<<nowy[i];
}