Witam, czy ktoś mógłby spojrzeć co jest źle w podanej funkcji, jej zadaniem ma być dodanie dwóch (max 80 cyfr) dużych liczb w systemie ósemkowym + do tego pytanie jak potem używać powstałej tablicy z wynikiem ? (przypisać coś w stylu tab[]=dodaj(a,b,c,d) czy jakoś inaczej ? )
Pozdrawiam i z góry dzięki za pomoc
char dodaj (char t[], char d[], int i, int j)
{
char wynik[82];
int k,n,a,b,m,tmp;
for (m=0, k=80, a=i-1, b=j-1; a!=-1 || b!=-1;a--,b--,k--,m=n/8)
{
n=t[a]-'0'+d[b]-'0';
wynik[k]=((n+m)%8)+'0';
}
if (a==b)
{
if (m==1)
{
wynik[k]='1';
return wynik[82];
}
else
{
return wynik[82];
}
}
else
{
if(a>b)
{
if (m==1)
{
for (;a!=-1;a--,k--,m=n/8)
{
n=m+t[a]-'0';
wynik[k]=(n%8)+'0';
}
if (m==1)
{
wynik[k]='1';
return wynik[82];
}
else
{
return wynik[82];
}
}
else //m=0
{
for (;a!=-1;a--,k--)
{
tmp=t[a];
t[a]=wynik[k];
wynik[k]=tmp;
}
return wynik[82];
}
}
else //a<b
{
if (m==1)
{
for (;b!=-1;b--,k--,m=n/8)
{
n=m+d[b]-'0';
wynik[k]=(n%8)+'0';
}
if (m==1)
{
wynik[k]='1';
return wynik[82];
}
else
{
return wynik[82];
}
}
else //m=0
{
for (;b!=-1;b--,k--)
{
tmp=d[b];
d[b]=wynik[k];
wynik[k]=tmp;
}
return wynik[82];
}
}
}
}