Witam, miałem do napisania program, który sumuje dwie bardzo duże liczby. Kod programu mam, tylko, że jest jeden jedyny błąd, a mianowicie generuje mi pięknie dwie duże liczby, z reguły ładnie dodaje, a czemu z reguły? Bo jak np. podam liczbe cyfr pierwszej liczby jako m=4 i liczbe cyfr drugiej liczby jako n=4, to gdy np wygeneruje mi liczby 9876 i 2345 to w wyniku nie ma 12221 tylko 2221, znika to przeniesienie, ale nie wiem dlaczego. Proszę o pomoc :p```
#include<stdlib.h>
#include<ctime>
#define max 1000
int main()
{
int tab1[max], tab2[max], tab1z[max], tab2z[max], tab3z[max], tab3[max], c, m ,n, i, x;
printf("Podaj ilosc cyfr pierwszej liczby\n");
scanf("%d", &n);
printf("\n");
printf("Podaj ilosc cyfr drugiej liczby\n");
scanf("%d", &m);
printf("\n\n");
srand(time(NULL));
for(i=0; i<n; i++)
{
tab1[i]=rand()%9+1;
}
for(i=0; i<m; i++)
{
tab2[i]=rand()%9+1;
}
printf("Pierwsza liczba to\n");
for(i=0; i<n; i++)
{
printf("%d", tab1[i]);
}
printf("\n");
printf("Druga liczba to\n");
for(i=0; i<m; i++)
{
printf("%d", tab2[i]);
}
printf("\n\n");
for(i=0; i<n; i++)
{
tab1z[i]=tab1[n-i-1];
}
for(i=0; i<m; i++)
{
tab2z[i]=tab2[m-i-1];
}
if(n>m)
{
x=n;
}
else
{
x=m;
}
c=0;
for(i=0; i<x; i++)
{
if((tab1z[i]+tab2z[i]+c)>9)
{
tab3z[i]=tab1z[i]+tab2z[i]+c-10;
c=1;
}
else
{
tab3z[i]=tab1z[i]+tab2z[i]+c;
c=0;
}
}
for(i=0; i<x; i++)
{
tab3[i]=tab3z[x-i-1];
}
printf("\n Suma tych cyfr to\n");
for(i=0; i<x; i++)
{
printf("%d",tab3[i]);
}
printf("\n");
system("PAUSE");
return 0;
}