دوستان گرامي! يه برنامه نوشتم واسه ضرب كردن اعداد بزرگ، ولي نميدونم چرا هر عددي كه ميدم بهم عدد -48 رو به عنوان جواب ميده! كسي ميتونه كمك كنه؟ (ظاهرا مشكل اونجاست كه ميخواد c[j][i] رو با هم جمع كنه كه نميدونم چرا مقدار درستشو نميگيره!)
void main()
{
char A[50] , B[50] , R[100], c[50][100];
int i , j , k , a , b , sum=0 , sum2=0, d1, d2, d3, d4;
cin >> A;
cin >> B;
a = strlen(A);
b = strlen(B);
for (j=b-1; j>=0; j--)
{
d1 = B[j]-'0';
k = a+b - (b-j)+1;
for (i=a-1; i>=0; i--)
{
d2 = A[i]-'0';
sum = sum/10 + (d1*d2);
if (i==0) c[b-j][k] = sum;
else c[b-j+1][k] = sum%10;
k--;
}
}
for (i=a+b-1; i>=0; i--)
for (j=0; j<b; j++)
{
d4 = c[j][i]-'0';
sum2= sum2/10 + d4;
R[i] = sum2%10;
}
for (i=0; i<a+b; i++)
d3 = R[i] - '0';
cout << d3;
}