读书人

任意两个字符数字的和,该如何解决

发布时间: 2012-04-11 17:42:33 作者: rapoo

任意两个字符数字的和
#include<iostream>
#include <string.h>
using namespace std;
const int MAXLEN=1000;

char a1[MAXLEN];
char a2[MAXLEN];
static int v1[MAXLEN];
static int v2[MAXLEN];
static int v3[MAXLEN];
int i,j,n,L1,L2,z;

int main()
{
cin>>a1;
cin>>a2;

L1=strlen(a1);
for (i=0;i<L1;i++)
v1[i]=a1[L1-1-i]-'0'; //这里为什么要-‘0’

L2=strlen(a2);
for (i=0;i<L2;i++)
v2[i]=a2[L2-1-i]-'0';

for (i=0;i<MAXLEN;i++)
v3[i]=v1[i]+v2[i];

for (i=0;i<MAXLEN;i++) {
if (v3[i]>=10) {
v3[i+1]+=v3[i]/10;
v3[i]=v3[i]%10;
}
}

cout<<a1<<"+"<<a2<<"=";



for (i=MAXLEN-1;i>=0;i--) {
if(v3[i]!=0) break;
}
for(;i>-1;i--){
cout<<v3[i];
}
cout<<endl;


return 0;
}


[解决办法]
v1是整型数组,a1是字符串数组
a1所对应的是ascll码值,例如'0'=48,'5'=53
'5'-'0'=5
这样能否理解

读书人网 >C++

热点推荐