2 u013229693 u013229693 于 2014.01.11 10:50 提问

c++题的一道题求两1000位数以内的和

不知道为什么AC不了

![CSDN移动问答][1]

[1]: http://acm.hdu.edu.cn/showproblem.php?pid=1002 这是问题要求
这是我的代码 用的是vs2012
#include

using namespace std;

int main( )
{
int t;
cin>>t;
for (int i=1;i<=t;i++)
{
char a[1001],b[1001],c[1003];
cin>>a>>b;
cout<<"Case "<<i<<":"<<endl;

    int n1=strlen(a)-1;  int n2=strlen(b)-1;
    int car=0,k=n1>n2?n1:n2;
    for (int j=n1>n2?n1:n2;j>=0;n1--,n2--,j--)
    {
        if (n1>=0&&n2>=0) c[j+1]=a[n1]+b[n2]-'0'+car;
        if (n1>=0&&n2<0) c[j+1]=a[n1]+car;
        if (n1<0&&n2>=0) c[j+1]=b[n2]+car;
        if (c[j+1]>'9') 
        {   
            c[j+1]=c[j+1]-10;
            car=1;
        }
        if (j==0) c[j]='0'+car;
    }
    c[k+2]='\0';
    if (c[0]=='0') 
    {
        char* h=c+1;
            cout<<a<<" + "<<b<<" = "<<h;
    }

    else cout<<a<<" + "<<b<<" = "<<c;
     cout<<endl<<endl;

}
return 0;

}

Csdn user default icon
上传中...
上传图片
插入图片