高精度加法,不知错在哪里,求大神指点,谢谢!
https://www.#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
char a[502],b[502];
int s[502],c[501],d[501];
int main()
{
int i,j,o;
i=1,j=1;
cin>>a[1];
while(a[i]!='\n')
{
i++;
a[i]=getchar();
if(a[i-1]!='\n')
{
int g=a[i-1]-48;
c[i-1]=g;
}
}
cin>>b[1];
while(b[j]!='\n')
{
j++;
b[j]=getchar();
if(b[j-1]!='\n')
{
int g=b[j-1]-48;
d[j-1]=g;
}
}
int m=501-i;
int n=501-j;
for(int p=i-1;p>=1;p--)
c[p+m]=c[p];
for(int p=j-1;p>=1;p--)
d[p+n]=d[p];
int l=m<n?m:n;
for(int i=500;i>l;i--)
{
s[i+1]+=c[i]+d[i];
if(s[i+1]>=10)
{
s[i+1]-=10;
s[i]++;
}
}
for(o=1;o<=501;o++)
if(s[o]!=0) break;
if(o==502) cout<<"0";
for(int k=o;k<=501;k++)
cout<<s[k];
cout<<endl;
return 0;
}