ACM Coder [T1002] 一直wrong answer,不知道为什么。上代码!就对就对!

时间:2023-03-08 21:45:14
ACM Coder [T1002] 一直wrong answer,不知道为什么。上代码!就对就对!

忘了改了什么,后来居然对了!做打不死的菜鸟!

#include <stdio.h>
#include <stdbool.h>
#define arrayLength 20
#define bitMax 1000 main(){
int caseCount = ;
scanf_s("%d", &caseCount); char inputA[arrayLength][bitMax];
char inputB[arrayLength][bitMax];
char result[arrayLength][bitMax + ]; for (int i = ; i < caseCount; i++){ scanf_s("%s", &inputA[i][], );
scanf_s("%s", &inputB[i][], );
}
//Calculating... result[0],result[1]
for (int caseNum = ; caseNum < caseCount; caseNum++)
{
char *ptrA, *ptrB, *ptrResult;
ptrA = inputA[caseNum];
ptrB = inputB[caseNum];
ptrResult = result[caseNum];
int lengthA = getLength(ptrA);
int lengthB = getLength(ptrB);
int lengthMax = lengthA>lengthB ? lengthA : lengthB;
//Fill A or B with zero
if (lengthA > lengthB){
ptrB += lengthB;
for (int j = ; j <= lengthB; j++)
{
char temp = *ptrB;
*(ptrB + lengthA - lengthB) = temp;
ptrB--;
}
ptrB = inputB[caseNum];
for (int i = ; i < lengthA - lengthB; i++){
*ptrB = '';
ptrB++;
}
}
else
{
ptrA += lengthA;
for (int j = ; j <= lengthA; j++)
{
char temp = *ptrA;
*(ptrA + lengthB - lengthA) = temp;
ptrA--;
}
ptrA = inputA[caseNum];
for (int i = ; i < lengthB - lengthA; i++){
*ptrA = '';
ptrA++;
}
}
for (int i = ; i <= lengthMax; i++){
*ptrResult = '';
ptrResult++;
}
*ptrResult = '\0';
bool goAhead = false;
ptrA = &inputA[caseNum][lengthMax - ];
ptrB = &inputB[caseNum][lengthMax - ];
ptrResult--;
//Calculate result[i]
for (int i = ; i < lengthMax; i++)
{ int bitA = *ptrA - '';
int bitB = *ptrB - '';
*ptrResult = '' + (bitA + bitB + goAhead) % ;
if (bitA + bitB + goAhead >= ){
goAhead = true;
}
else
{
goAhead = false;
}
ptrA--;
ptrB--;
ptrResult--;
}
if (goAhead == true){
*ptrResult = '';
}
else
{
ptrResult++;
}
ptrA++;
ptrB++;
for (int bitNum = ; bitNum < lengthMax; bitNum++){
if (*ptrA == '')
ptrA++;
else
{
break;
}
} for (int bitNum = ; bitNum < lengthMax; bitNum++){
if (*ptrB == '')
ptrB++;
else
{
break;
}
}
if (caseNum != caseCount-)
printf("Case %d:\n%s + %s = %s\n\n", caseNum + , ptrA, ptrB, ptrResult);
else
{
printf("Case %d:\n%s + %s = %s\n", caseNum + , ptrA, ptrB, ptrResult);
}
} }
//get string length
int getLength(char *ptr){
int length = ;
while (*ptr != '\0')
{
ptr++;
length++;
}
return length;
}

ACM Coder [T1002] 一直wrong answer,不知道为什么。上代码!就对就对!

Problem Description
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
Input
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.
Output
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.
Sample Input
2
1 2
112233445566778899 998877665544332211
Sample Output
Case 1:
1 + 2 = 3 Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110