闭环加密问题,在devc上运行没猫饼?

这是我的代码
#include
#include
using namespace std;
int main(){
char a[1000];
int n=0,h=0;
while(cin>>h,getchar(),gets(a))
{

    n=(int)(h%26);
    for(int i=0;i<=strlen(a);i++){          
     if(a[i]>=('a'+n))
        cout<<char(a[i]-n);
    else if((int)a[i]<=('a'+n)&&(int)a[i]>='a')
            cout<<char(a[i]+(26-n));

    else cout<<a[i];
} 

cout<<endl;
h=0;
n=0;

 }  

    return 0;

}
本地测试没什么问题,但提交到学校的OJ就是会答案错误,对照过测试数据也没毛病阿....
学校OJ使用gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)作为编译器
请问是有什么写法不通用么?

用debugger调试下代码的错误等