HDOJ 1002,咋就不对了,测了n个数都是对的呀

#include <stdio.h>
#include <string.h>
void consequence();
int main(int argc, char** argv)
{
    int i,t;
    scanf("%d",&t);
    for (i=1;i<=t;++i)
    {
        consequence(i,t);
    }
    return 0;
}
void consequence(int h,int o)
{
    int len,val,i,pos=0,cnt=0,j,k,w;
    char a[1001];
    char b[1001];
    int c[1001]={
    0}
    ;
    scanf("%s%s",&a,&b);
    if (strlen(a)<strlen(b))
    {
        len = strlen(a);
    }
    else
    {
        len = strlen(b);
    }
    for (i=0;i<len;++i)
    {
        val = (a[strlen(a)-1-i]-'0')+(b[strlen(b)-1-i]-'0')+pos;
        if (val>9)
        {
            val = val-10;
            pos = 1;
        }
        else
        {
            pos = 0;
        }
        c[i] = val;
        cnt = i;
    }
    if (strlen(a)>len)
    {
for (k=len,w=strlen(a)-1;
        k<strlen(a);
        ++k)
        {
            c[k] = (a[w-k]-'0');
        }
        if (pos == 1)
        {
            c[len] = c[len]+1;
            if (c[len]>9)
            {
                c[len] = 0;
                c[len+1] = c[len+1]+1;
            }
        }
        pos = 0;
        printf("Case %d:\n%s + %s = ",h,a,b);
for (j=strlen(a)-1;
        j>=0;
        --j)
        {
            printf("%d",c[j]);
        }
        if (h!=o)
        printf("\n");
        printf("\n");
    }
    else if(strlen(b)>len)
    {
for (k=len,w=strlen(b)-1;
        k<strlen(b);
        ++k)
        {
            c[k] = (b[w-k]-'0');
        }
        if (pos == 1)
        {
            c[len] = c[len]+1;
            if (c[len]>9)
            {
                c[len] = 0;
                c[len+1] = c[len+1]+1;
            }
        }
        pos = 0;
        printf("Case %d:\n%s + %s = ",h,a,b);
for (j=strlen(b)-1;
        j>=0;
        --j)
        {
            printf("%d",c[j]);
        }
        if (h!=o)
        printf("\n");
        printf("\n");
    }
    else
    {
        printf("Case %d:\n%s + %s = ",h,a,b);
        if (pos==1)
        printf("1");
for (j=strlen(b)-1;
        j>=0;
        --j)
        {
            printf("%d",c[j]);
        }
        if (h!=o)
        printf("\n");
        printf("\n");
    }
    return;
}