#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void cz(char *A, char *B)
{
int j;
int a;
int b;
int i;
char C[2000];
a = strlen(A);
b = strlen(B);
char q;
if(a == b)
{
q = 48;
for(j = a - 1;j >= 0;j--)
{
if(A[j] - 48 + B[j] - 48 + q - 48>= 10)
{
C[j] = A[j] - 48 + B[j] - 10 + q - 48;
q = 49;
}
else
{
C[j] = A[j] - 48 + B[j] + q - 48;
q = 48;
}
}
if(q == 48)
{
printf("%s + %s = ", A, B);
for(i = 0;i < a;i++)
printf("%c", C[i]);
printf(" ");
}
else
{
printf("%s + %s = %c", A, B, q);
for(i = 0;i < a;i++)
printf("%c", C[i]);
printf(" ");
}
}
else if(a > b)
{
i = 1;
q = 48;
for(j = b - 1;j >= 0;j--)
{
if(A[a - i] - 48 + B[j] - 48 + q - 48>= 10)
{
C[a - i] = A[a - i] - 48 + B[j] - 10 + q - 48;
q = 49;
}
else
{
C[a - i] = A[a - i] - 48 + B[j] + q - 48;
q = 48;
}
i++;
}
if(q == 48)
{
printf("%s + %s = ", A, B);
for(j = 0;j < a - b;j++)
printf("%c", A[j]);
for(j = a - b;j < a;j++)
printf("%c", C[j]);
}
else
{
printf("%s + %s = %c", A, B, q);
A[b] += 1;
for(j = 0;j < a - b;j++)
printf("%c", A[j]);
for(j = a - b;j < a;j++)
printf("%c", C[j]);
}
printf(" ");
}
else
{
i = 1;
q = 48;
for(j = a - 1;j >= 0;j--)
{
if(A[j] - 48 + B[b - i] - 48 + q - 48>= 10)
{
C[b - i] = A[j] - 48 + B[b - i] - 10 + q - 48;
q = 49;
}
else
{
C[b - i] = A[j] - 48 + B[b - i] + q - 48;
q = 48;
}
i++;
}
if(q == 48)
{
printf("%s + %s = ", A, B);
for(j = 0;j < b - a;j++)
printf("%c", B[j]);
for(j = b - a;j < b;j++)
printf("%c", C[j]);
}
else
{
printf("%s + %s = %c", A, B, q);
B[a] += 1;
for(j = 0;j < b - a;j++)
printf("%c", B[j]);
for(j = b - a;j < b;j++)
printf("%c", C[j]);
}
printf(" ");
}
}
int main()
{
int n;
char *A, *B;
int i;;
while(scanf("%d", &n) != EOF)
{
i = 1;
while(n--)
{
A = (char*)malloc(1000 * sizeof(char));
B = (char*)malloc(1000 * sizeof(char));
scanf("%s%s", A, B);
printf("Case %d: ", i);
cz(A, B);
printf(" ");
free(B);
free(A);
i++;
}
}
return 0;
}
可能的问题是你输入/输出格式
要求是一次性输入全部数据然后出结果
1.而你的程序是输入一对数据就输出一个结果
2.题目没有要求输入EOF,你输入n及n对数据后,程序就应该结束了
一周热门 更多>