I have a very simple problem for you. Given two integers A and B,your job is to calculate the Sum of A + B.
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow,each line consists of two positive integers,A and B. Notice that the integers are very large,that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
For each test case,you should output two lines. The first line is "Case #:",# means the number of the test case. The second line is the an equation "A + B = Sum",Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.
2
1 2
112233445566778899 998877665544332211
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 2222222222222221110
?
#include<stdio.h>
#include<string.h>
int main()
{
int t,i,j,k,l,p;
int q=0;
char a[1010],b[1010];
int c[1010]={0},d[1010]={0};
scanf("%d",&t);
//getchar();
while(t--)
{
q++;
memset(a,sizeof(char));
memset(b,sizeof(char));
<span style="color:#6633ff;BACKGROUND-COLOR: #ffffff">memset(c,sizeof(c));
memset(d,sizeof(d));
// memset(c,sizeof(int));
//memset(d,sizeof(int)); 此处错误,sizeof()内是需要清零的数组总长度
//memset(c,sizeof(int)*1010); 上下两种均可,切记 ,,切记 ,,
//memset(d,sizeof(int)*1010);
</span> scanf("%s",a);
scanf("%s",b);
k=strlen(a);
l=strlen(b);
for(i=k-1,j=0;i>=0;j++,i--)
c[j]=a[i]-'0';
for(i=l-1,i--)
d[j]=b[i]-'0';
for(i=0;i<1010;i++)
{
c[i]=c[i]+d[i];
if(c[i]>=10)
{
c[i]=c[i]%10;c[i+1]++;
}
}
for(i=1010-1;c[i]==0&&i>=0;i--);//第二次做此题,就错在1010没减1,导致正确答案前面有好多0输出。如下部:
printf("Case %d:n",q);
printf("%s + %s = ",a,b);
if(i>=0)
for(;i>=0;i--)
{
printf("%d",c[i]);
}
else
printf("0");
printf("n");
if(t)
printf("n");
}
return 0;
}
22222199999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002222210