杭电1002题,求大神帮忙觅错啊

杭电1002题,求大神帮忙找错啊!
#include<iostream>
#include<string>
using namespace std;
int main()
{
  int n,m,t,s,i,j,k,p;
  char a[1005],b[1005],c[1005];
  cin>>n;
  for(p=1;p<=n;p++)
  {
   
  if(p!=1)
  cout<<endl;
  cin>>a>>b;
  cout<<"Case "<<p<<":"<<endl;
  cout<<a<<" + "<<b<<" = "; 
  m=strlen(a);
  t=strlen(b);
  if(m>t)
  s=m;
  else
  s=t;
  for(i=0;i<m;i++)
  a[i]=a[i]-'0';
  for(i=0;i<t;i++)
  b[i]=b[i]-'0';
  for(i=0;i<=s;i++)
  c[i]=0;
  i=m-1;j=t-1;k=s;
  for(;(i>=0)&&(j>=0);k--)
  {
  if(a[i]+b[j]<=9)
  c[k]+=a[i]+b[j]+'0';
  else
  {
  c[k]=c[k]+(a[i]+b[j])%10+'0';
  c[k-1]++;
  }
  i--;
  j--;
  }
  while(i>=0)  
  {
  if(c[k]+a[i]>9) 
  {c[k]=(c[k]+a[i])%10+'0';c[k-1]++;}
  else
  c[k]=c[k]+a[i]+'0';
  k--;i--;
  }
  while(j>=0) 
  {
  if(c[k]+b[j]>9) 
  {c[k]=(c[k]+b[j])%10+'0';c[k-1]++;}
  else
  c[k]='0'+c[k]+b[j];
  k--;j--;
  } 
  if(c[0]!=0)
  cout<<"1";
  for(i=1;i<=s;i++)
  cout<<c[i];
  cout<<endl;
  }
  return 0; 
}


------解决方案--------------------
dev上随便输入一组数据:

5
1234354354656 45464576767676789548965689
结果是45464576767677:238:331:345

问题显然了吧,
你的程序是有bug的。。。