我像风一样自由~ 2020-03-09 00:40 采纳率: 0%
浏览 146

高精度2数相乘,我不知道我问题出在哪,求大佬解答

图片说明

#include<bits/stdc++.h>
using namespace std;
int a[101],b[101],c[202];
string s1,s2;
int main()
{
    int i,j,k,x;
    while(cin>>s1>>s2)
    {
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));

        a[0]=s1.size();
        b[0]=s2.size();
        for(i=0;i<a[0];i++) a[a[0]-i]=s1[i]-'0';
        for(i=0;i<b[0];i++) b[b[0]-i]=s2[i]-'0';
        for(i=1;i<=a[0];i++)
        {
            x=0;
            for(j=1;j<=b[0];j++)
            {
                c[i+j-1]=c[i+j-1]+x+a[i]*b[j];
                x=c[i+j-1]/10;
                c[i+j-1]%=10;
            }
            c[i+j-1]=x;
        }
        k=500;
        while(!c[k--]); 
        for(i=k+1;i>=1;i--)
        cout<<c[i];
        cout<<endl;
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 半个瓜皮 2020-03-09 14:41
    关注

    k=500;
    while(!c[k--]);
    导致数组越界。可以把最后的k值输出来看看。

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?