计算两个超大正整数之和

描述
计算两个超大正整数的和。

输入
第1行是一个整数n,表示随后有n组数据。每组数据占一行,输入正整数a和b(不超过50位),以空格分开。

输出
对每组数据,计算并输出a和b的和,并换行。

样例

输入					输出                                
3
123456789 12345678			135802467
13242325232535242 324			13242325232535566
657936583496539485698934561 987		657936583496539485698935548

代码

#include
void proc()
{
 char a[50],b[50],d;
 int c[51],i=0,j=0,x,y,e,f,z=0,g=0;
 d=getchar();
 while(d!=' ')
 {
  a[i]=d;
  i++;
  d=getchar();
 }
 i--;
 d=getchar();
 while(d!='\n')
 {
  b[j]=d;
  j++;
  d=getchar();
 }
 j--;
 for(x=i,y=j;x>=0&&y>=0;x--,y--)//加起公共部分 
 {
  e=a[x]-'0';
  f=b[y]-'0';
  if((e+f+g)>=10)
  {
   c[z]=e+f-10+g;
   z++;
   g=1;
  }
  else
  {
   c[z]=e+f+g;
   z++;
   g=0;
  }
 }
 if(i>j)
 {
  for(x;x>=0;x--)
  {
   e=a[x]-'0';
   if((e+g)>=10)
   {
    c[z]=e+g-10;
    z++;
    g=1;
   }
   else
   {
    c[z]=e+g;
    z++;
    g=0;
   }
  }
 }
 else if(i=0;y--)
  {
   f=b[y]-'0';
   if((f+g)>=10)
   {
    c[z]=f+g-10;
    z++;
    g=1;
   }
   else
   {
    c[z]=f+g;
    z++;
    g=0;
   }
  }
 }
 if(g==1)
 {
  c[z]=1;
  z++;//保持队形 
 }
 z--;
 for(z;z>=0;z--)
 {
  printf("%d",c[z]);
 }
 printf("\n");
}
int main()
{
 int i,n;
 scanf("%d",&n);
 getchar();
 for(i=0;i

你可能感兴趣的:(C语言简单练习题,算法问题)