c语言哪里没考虑到 高精度乘法

#include<stdio.h>#include<string.h>intmain(){intd,i,j,m,n,a,b,k,z[20000],x[20000],c[4... # include<stdio.h>
# include<string.h>
int main()
{
int d,i,j,m,n,a,b,k,z[20000],x[20000],c[40000];
char q[20000],w[20000];
scanf("%s %s",&q,&w);
a=strlen(q);
b=strlen(w);
for (i=0;i<40000;i++) c[i]=0;
if (a>b)
{for (i=0;i<a;i++) z[i]=q[a-1-i]-'0';
for (i=0;i<b;i++) x[i]=w[b-1-i]-'0';
m=b;n=a;
}
else
{for (i=0;i<a;i++) x[i]=q[a-1-i]-'0';
for (i=0;i<b;i++) z[i]=w[b-1-i]-'0';
m=a;n=b;
}
for (i=0;i<m;i++)
for (j=0;j<n;j++)

c[i+j]=c[i+j]+z[j]*x[i];
d=n+m;
for (i=0;i<d;i++)
while(c[i]>=10)
{c[i]=c[i]-10;
c[i+1]=c[i+1]+1;
}
for (i=39999;i>=0;i--)
if (c[i]!=0){k=i;break;}
for (i=k;i>=0;i--)
printf("%d",c[i]);
if (((n==1)&&(z[0]==0))||((m==1)&&(x[0]==0))) printf("0");

return 0;
}
展开
 我来答
匿名用户
推荐于2016-10-01
展开全部
#include<stdio.h>
# include<stdio.h>
# include<string.h>
int main()
{
int d, i, j, m, n, a, b, k, z[20000], x[20000], c[40000];
int temp;
char q[20000], w[20000];
scanf("%s %s", &q, &w);
a = strlen(q);
b = strlen(w);
for (i = 0; i<40000; i++) c[i] = 0;
if (a>b)
{
for (i = 0; i<a; i++) z[i] = q[a - 1 - i] - '0';
for (i = 0; i<b; i++) x[i] = w[b - 1 - i] - '0';
m = b; n = a;
}
else
{
for (i = 0; i<a; i++) x[i] = q[a - 1 - i] - '0';
for (i = 0; i<b; i++) z[i] = w[b - 1 - i] - '0';
m = a; n = b;
}
//z 大
//X 小
/*相乘*/
for (i=0;i <= m-1;  i++)
for (j=0;j <= n-1;  j++)

c[i + j] = c[i + j] + z[j] * x[i];
d = n + m;
for (i = 0; i <= d - 1; i++){
j = i;
while (c[j] >= 10)/*进位*/
{
temp = c[j] / 10;
c[j] = c[j] % 10;
c[j + 1] = c[j+1] + temp;
j++;
}
}
for (i = d; i >= 0; i--)
if (c[i] != 0){ k = i; break; }
for (i = k; i >= 0; i--)
printf("%d", c[i]);
/*if (((n == 1) && (z[0] == 0)) || ((m == 1) && (x[0] == 0))) printf("0");*/

return 0;
}
追问
为什么啊 - -! 我纠结好久 最后一句不是要判断 某一个为0的情况。
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
匿名用户
2014-11-22
展开全部
变量的类型。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式