oj上为什么编译失败了啊

这串代码在visual studio里都可以输出结果了,但是我放到oj上显示编译失败,是main和work的那个数字报的错,怎么改啊

img

img

数组 work[1000][100] 是否开的太大了,另第24行 至 第27间算法还是有问题的,如果 x = 26,此时A-U之间就的字符都出错了。
修改如下,供参考:

#include <stdio.h>
int main()
{
    int x,i=0;
    char work[100];
    scanf("%d", &x);
    getchar();
    gets(work);
    while(work[i])
    {
        if (work[i]>='A' && work[i] <= 'Z')
            work[i] = (work[i] - 'A' + x) % 26 + 'A';
        else if (work[i]>='a' && work[i] <= 'z')
            work[i] = (work[i] - 'a' + x) % 26 + 'a';
        i++;
    }
    printf("%s", work);
    return 0;
}