C++高精度加法,在反转a,b两个数的函数rever1和rever2中,只要数字位数一高就会运行错误。这是为什么? 5

#include<bits/stdc++.h>usingnamespacestd;stringa,b;longlongl,c[600]={0};voidrever1(){... #include<bits/stdc++.h>
using namespace std;
string a,b;
long long l, c[600]={0};
void rever1()
{
string temp;
int la;
int i;
la=a.size();
for (i=0;i<=la-1;i++)
{
temp[i]=a[la-1-i];
}
for (i=0;i<=la-1;i++)
{
a[i]=temp[i];
}
}
void rever2()
{
string temp;
int lb;
int i;
lb=b.size();
for (i=0;i<=lb-1;i++)
{
temp[i]=b[lb-1-i];
}
for (i=0;i<=lb-1;i++)
{
b[i]=temp[i];
}
}
void addtogether(string x, string y)
{
int lx,ly,i;
lx=x.size();
ly=y.size();
if (lx>ly)
l=lx;
else
l=ly;
for (i=0;i<=l;i++)
{
if (i>ly-1) y[i]='0';
if (i>lx-1) x[i]='0';
c[i]=c[i]+x[i]+y[i]-96;
if (c[i]>=10)
{
c[i+1]++;
c[i]=c[i]%10;
if (c[l+1]>0) l++;
}
}
}
void ans()
{
int i;
for (i=l-1;i>=0;i--)
{
cout<<c[i];
}
}
int main()
{
cin>>a>>b;
rever1();
rever2();
addtogether(a,b);
ans();
}
展开
 我来答
itunes0004
2019-04-15 · TA获得超过4045个赞
知道大有可为答主
回答量:2685
采纳率:69%
帮助的人:529万
展开全部

修复好了。

#include<bits/stdc++.h>
using namespace std;
string a,b;
long long l, c[600]= {0};
void rever1()
{
    string temp(a);
    int la;
    int i;
    la=a.size();
    for (i=0; i<=la-1; i++)
    {
        a[i]=temp[la-1-i];
    }
}
void rever2()
{
    string temp(b);
    int lb;
    int i;
    lb=b.size();
    for (i=0; i<=lb-1; i++)
    {
        b[i]=temp[lb-1-i];
    }
}
void addtogether(string x, string y)
{
    int lx,ly,i;
    lx=x.size();
    ly=y.size();
    if (lx>ly)
        l=lx;
    else
        l=ly;
    for (i=0; i<=l; i++)
    {
        if (i>ly-1) y[i]='0';
        if (i>lx-1) x[i]='0';
        c[i]=c[i]+x[i]+y[i]-96;
        if (c[i]>=10)
        {
            c[i+1]++;
            c[i]=c[i]%10;
            if (c[l+1]>0) l++;
        }
    }
}
void ans()
{
    int i;
    for (i=l-1; i>=0; i--)
    {
        cout<<c[i];
    }
}
int main()
{
    cin>>a>>b;
    rever1();
    rever2();
    addtogether(a,b);
    ans();
}
追问
所以问题是出在哪里呢,为什么之前的写法会运行错误?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式