问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <stdio.h>
#include <string.h>
void d(char x[],int l)
{
int s;
char p;
for(s=0;s<l/2;s++)
{
p=x[l-s-1];
x[l-s-1]=x[s];
x[s]=p;
}
return;
}
int main()
{
char a[1001]={0},b[1001]={0},c[1001][1001]={0},total[2001]={0};
int i,t,len1,len2,len,k;
scanf("%s",a);
scanf("%s",b);
len1=strlen(a);
len2=strlen(b);
d(a,len1);
d(b,len2);
printf("%d %d",len1,len2);
for(i=0;i<len1;i++)
{
for(t=0;t<len2;t++)
{
c[i][t]=((int)a[i]-48)*((int)b[t]-48)+48;
if(t!=0)c[i][t]+=((int)a[i]-48)*((int)b[t-1]-48)/10;
c[i][t]=((int)c[i][t]-48)%10+48;
}
if((int)c[i][len2-1]-48>9)c[i][len2]=((int)a[i]-48)*((int)b[len2-1]-48)/10+48;
}
for(t=0;t<len2+len1;t++)
{
k=0;
for(i=0;i<len1;i++)
{
if(t-k<0)continue;
total[t]+=(int)c[i][t-k]-48;
if(t!=0)total[t]+=((int)total[t-1]-48)/10;
k++;
}
total[t]+=48;
}
len=strlen(total);
printf("%d",len);
if((int)total[len-1]-48>9)
{
total[len]=((int)total[len-1]-48)/10+48;
len++;
}
for(t=0;t<len;t++)
{
total[t]=((int)total[t]-48)%10+48;
}
for(t=len-1;t>=0;t--)
{
printf("%c",total[t]);
}
return 0;
}