An葡萄汽水 2022-10-30 15:30 采纳率: 100%
浏览 20
已结题

C语言高精度乘法已写代码找错并纠正

img

#include <stdio.h>
#include <string.h>
int main()
{
char a[200]={0}, b[200]={0};
int a1[201]={0}, b1[201]={0}, c[402]={0};
int i, j;
scanf("%s%s", a, b);
int a2 = strlen(a), b2 = strlen(b);
int c2 = b2 + a2;
for (i = 0; i < a2; i++)
{
a1[a2 - i] = a[i] - '0';
}
for (j = 0; j < b2; j++)
{
b1[b2 - i] = b[i] - '0';
}
for (i = 1; i <= a2; i++)
{
for (j = 1; j <= b2; j++)
{
c[i + j - 1] += a1[i] * b1[j];
c[i + j] += c[i + j - 1] / 10;
c[i + j - 1] %= 10;
}
}
if (c[c2] == 0 && c2>0)
c2--;
for (i = c2; i >= 1; i--)
{
printf("%d", c[i]);
}
return 0;
}

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-10-30 15:36
    关注

    for (j = 0; j < b2; j++)
    {
    b1[b2 - i] = b[i] - '0';
    }
    改为
    for (j = 0; j < b2; j++)
    {
    b1[b2 - j] = b[j] - '0';
    }
    =======
    用错i和j了啊,这个改过来就对了。还是要细心一些

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月30日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大