前言:
21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。
解答:
#include<cstdio>
#define max 20
int Cnum(char num[],int len){
int rnum=0,count=1;
for(int i=len-2;i>=0;i--) //字符数组最后会多个/0,导致末尾多一个0,故-2 //故此处-2消除这一问题的影响
if(num[i]>='0'&&num[i]<='9')
{
rnum=rnum+count*((int)num[i]-int('0'));
count=count*10;
}
if(num[0]=='-')
rnum=-rnum;
return rnum;
}
int main(){
char num1[max],num2[max];
int rnum1,rnum2,count=0; //rnum1和rnum2记录真值
int len1=0,len2=0; //记录各数组长度
int init=0; //用于初始化字符数组
while(init<max){
num1[init]='#';
num2[init]='#';
init++;
}
while(scanf("%s %s",num1,num2)!=EOF){
while(num1[count]!='#')
{
len1++;
count++;
}
count=0;
while(num2[count]!='#')
{
len2++;
count++;
}
rnum1=Cnum(num1,len1);
rnum2=Cnum(num2,len2);
printf("%d",rnum1+rnum2);
printf("\n");
init=0; //为应付codeup的多点测试,最后重新初始化字符数组
while(init<max){
num1[init]='#';
num2[init]='#';
init++;
}
}
return 0;
}