对比别人写的代码 他人代码
以下是自己写的
# include <iostream>
# include <malloc.h>
# include <string.h>
using namespace std;
# define TASE_NUM 20
# define STR_LEN 1005
char * res[TASE_NUM];
void f(char * a,char * b,int i)
{
int len_a,len_b,len_big,len_small;
res[i] = (char *)malloc(sizeof(char) * STR_LEN);
int j,n=0;
char flag = '0';
char * big;
char * small;
len_a = strlen(a);
len_b = strlen(b);
if(len_a >= len_b )
{
len_big = len_a;
len_small = len_b;
big = a;
small = b;
}
else
{
len_big = len_b;
len_small = len_a;
big = b;
small = a;
}
for(j = len_big;j > 0; --j )
{
--len_big;
--len_small;
if(len_small >= 0)
{
(*(res+i))[n] = ( *(big+len_big) - '0' + *(small + len_small) - '0' + flag -'0' ) % 10 + '0';
flag = ( *(big+len_big) - '0' + *(small + len_small) - '0' + flag-'0') / 10 +'0' ;
n++;
}
else
{
(*(res+i))[n] = ( *(big+len_big) - '0' + flag -'0') % 10 +'0';
flag = ( *(big+len_big) - '0' + flag-'0') / 10+'0';
n++;
}
}
if(flag-'0' > 0)
(*(res+i))[n] = flag;
else
--n;
if(i>0)
cout<<endl;
cout<<"Case "<<(i+1)<<":"<<endl;
cout<<a<<" + "<<b<<" = ";
for( ;n >= 0;--n)
cout<<( (*(res+i))[n]);
cout<<endl;
}
int main()
{
int tase_num;
int i;
char * str_a[TASE_NUM];
char * str_b[TASE_NUM];
cin>>tase_num;
for(i = 0; i < tase_num; ++i)
{
str_a[i] = (char*)malloc(sizeof(char) * STR_LEN);
str_b[i] = (char*)malloc(sizeof(char) * STR_LEN);
cin>>str_a[i]>>str_b[i];
}
for(i = 0; i < tase_num; ++i)
{
f(str_a[i],str_b[i],i);
}
return 0;
}