杭电acm1002题目求救,我的数据都是对的就是wa

#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个回答

可能的问题是你输入/输出格式

要求是一次性输入全部数据然后出结果

1.而你的程序是输入一对数据就输出一个结果

2.题目没有要求输入EOF,你输入n及n对数据后,程序就应该结束了


发布于 2016-10-23 08:55
查看更多
外卖券领取

相关问题

支持语音或者文本回复

语音最长一分钟

点击录音开始,最短不低于3秒