杭电ACM A + B Problem II 的C语言答案,搞不懂自己哪错了,求大神解答 #define N 1000

2024-11-24 17:59:37
推荐回答(1个)
回答1:

望采纳!!


#include

#include



int main()

{


int t,i,len_str1,len_str2,len_max,k,num=1;

char str1[1000];

char str2[1000];

scanf("%d",&t);

getchar();

while(t--)

{

int a[1000]={0},b[1000]={0},c[1001]={0};

scanf("%s",str1);

len_str1=strlen(str1);

for( i=0;i<=len_str1-1;++i)

{

a[i]=str1[len_str1-1-i]-'0';//将字符转换为整型;

}

scanf("%s",str2);

len_str2=strlen(str2);

for( i=0;i<=len_str2-1;++i)

{

b[i]=str2[len_str2-1-i]-'0';

}

if(len_str1>len_str2)

{

len_max=len_str1;

}

else

{

len_max=len_str2;

}

           

// len_max=len_str1>len_str2?len_str1:len_str2;

k=0;

for( i=0;i

{

c[i]=(a[i]+b[i]+k)%10;

k=(a[i]+b[i]+k)/10;

}

if(k != 0)

{

c[len_max]=1;

}

printf("Case %d:\n",num);

num++;

printf("%s + %s = ",str1,str2);

if(c[len_max] == 1)

printf("1");

for( i=len_max-1;i>=0;--i)

{

printf("%d",c[i]);

}

printf("\n");

if(t>=1)

printf("\n");

}

return 0;

}