两个大数相乘的程式,但online judge 一直显示 wrong answer 哪位大大可以帮我找出错误的 testcase

ProblemDescriptionComputeA*B.InputForeachcasealine,therewillbetwopositiveintegersAand... Problem DescriptionCompute A*B.
InputFor each case a line, there will be two positive integers A and B < 10^100.
OutputFor each case a line, output the answer A*B.

Sample Input
25 16
897 9945
123456789 987654321
Sample Output
400
8920665
121932631112635269

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){

char A[105];
char B[105];
char C[105][105];
char D[210];
char *e,q;
int i,j,t,k,c;
while (scanf("%s %s",A,B)!=EOF) {
for (i=0; i<210; i++)
D[i]='0';
k=0;
for (i=strlen(A)-1;i>=0; i--) {
t=0;
e=C[k];
for (j=strlen(B)-1; j>=0; j--) {
*e=(t+(B[j]-'0')*(A[i]-'0'))%10+'0';
e++;
t=(t+(B[j]-'0')*(A[i]-'0'))/10;
}
if (t){
*e=t+'0';
e++;
}
*e='\0';
k++;
}
for (i=0; i<k; i++) {
c=0;
for (j=i; j<strlen(C[i])+i; j++) {
q=(C[i][j-i]-'0'+D[j]-'0'+c)%10+'0';
c=(C[i][j-i]-'0'+D[j]-'0'+c)/10;
D[j]=q;
}
if(c)
D[j++]=c+'0';
}
D[j]='\0';
for (i=strlen(D); i>=0; i--)
printf("%c",D[i]);
printf("\n");

}

return0;
}
展开
 我来答
cossbow
2013-03-11 · TA获得超过697个赞
知道小有建树答主
回答量:798
采纳率:100%
帮助的人:219万
展开全部
大数乘法我也刚写过,反正方法跟网上流行的不同,建议你把字符都减去'0'后再进行计算,显示之前在加上'0',这样比较容易检查错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式