zzuli oj 1164题 为什么我的这种写法会判题为 答案错误呢? 我明明可以输出正确答案,问题在哪?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char a[1000];
    scanf("%s",&a);
    int i,k,l,len;
    scanf("%d",&k);
    len = strlen(a);
     l = k%26;
    for(i = 0; i<len; i++)
    {
        if(a[i] >= 'a' && a[i] <= 'z')
        {
            if(a[i] + l <= 'z')
                a[i] = a[i] + l ;
            else
                a[i] = (l - 26) + a[i];
        }
        else if(a[i] >= 'A' && a[i] <= 'Z' )
        {
            if (a[i] +l  <=  'Z')
                a[i] = a[i] + l ;
            else
                a[i] = (l - 26) +a[i];
        }
    }
    for(i=0;i<len;i++)
    printf("%c",a[i]);
    return 0;
}

https://blog.csdn.net/weixin_43705195/article/details/84504444

看看是不是char a[1000]的问题