代码繁琐,继续学习中
//Edion 1
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
void add(char a[],char b[])
{ char *temp;
int swap=0;
if(strlen(a)<strlen(b)||strcmp(a,b)<0)//strcmp若a<b,返回值<0
{
temp=a;
a=b;
b=temp;
swap=1;
}//保证a的位数大于等于b的位数
int alen=strlen(a),blen=strlen(b);
int n[101]={0},k=0;
int aa[100]={0},bb[100]={0},ak=0,bk=0;
int len=alen>blen?alen:blen;
for(int i=alen-1;i>=0;i--)
aa[ak++]=a[i]-'0';
for(int j=blen-1;j>=0;j--)
bb[bk++]=b[j]-'0';
for(int i=0;i<len;i++)
n[k++]=aa[i]-bb[i];
for(int i=0;i<k;i++)
{ if(n[i]<0)
{ n[i]=n[i]+10;
n[i+1]-=1;}
}
if(n[k-1]<0||swap==1)
cout<<'-';
for(int i=k-1;i>=0;i--)
cout<<n[i];
}
int main()
{
char a[100],b[100];
cin>>a>>b;
add(a,b);
getch();
return 0;
}