因为字符串高地址保存的是高
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void BigMul(char *a,char *b)
{
int a_len=strlen(a);
int b_len=strlen(b);
int i,j,n,temp,t;
int *c=(int *)malloc(sizeof(int)*a_len);
int *d=(int *)malloc(sizeof(int)*b_len);
int result[100]={0};
for(i=0;i<a_len;i++)
c[i]=a[i]-'0';
for (i=0;i<b_len;i++)
d[i]=b[i]-'0';
n=a_len+b_len-1;
for (i=0;i<n;i++)
result[i]=0;
temp=0;
for(i=0;i<b_len;i++)
{
//t=d[i];
t=i;
for (j=0;j<a_len;j++)
{
temp=c[j]*d[i]+result[t];
if (temp>=10)
{
result[t]=(temp)%10;
result[t+1]+=temp/10;
}
else
{
result[t]=temp;
}
t++;
}
//n=n+a_len-1;
}
printf("Result:\n");
if (result[0]!=0)
printf("%d",result[0]);
for(i=1;i<=a_len+b_len-1;i++)
printf("%d",result[i]);
printf("\n");
}
void main()
{
char a[100]={0};
char b[100]={0};
printf("Input two big numbers:\n");
scanf("%s %s",a,b);
BigMul(a,b);
system("pause");
}
位,所以在测试的时候大家要注意这个问题。我会尽快解决这个问题,附上代码如下: