注册 登录
编程论坛 C++教室

各位帮忙看看这高精度加怎么错了

火山风暴 发布于 2012-06-06 19:19, 512 次点击
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    char a[1000];
    int b[1000],c[1000];
    int l,l2,i;
    l=strlen(a);
    for (i=0; i<l; i++)
        b[i]=a[l-i-1]-'0';
    cin>>a;
    l2=strlen(a);
    for (i=0; i<l2; i++)
        c[i]=a[l2-i-1]-'0';
    if (l2<=l)
        for (i=l2;i<l;i++)
            c[i]=0;
    else
    {
        for (i=l;i<l2;i++)
            b[i]=0;
        l=l2;
    }
    for (i=0;i<l;i++)
    {
        b[i]+=c[i];
        b[i+1]+=b[i]/10;
        b[i]%=10;
    }
    l++;
    while (b[l]==0&&l>=0)
        l--;
    if (l<0)
        cout<<0;
    else
    {
    for (i=l-1;i>=0;i--)
    {
        cout<<b[i];
        b[i]=c[i]=0;
    }
    }
    cout<<endl;
    return 0;
}
1 回复
#2
nongzhaobo2012-06-06 21:04
看不懂的,无能为力了....
1