请问一下这个代码错在哪了嘛,一直找不出来错误的地方,运行不了

{
int c;
while ((c = getchar()) != '\n')
{
if (c >= 'A' && c <= 'Z')
c = (c - 'A' + 2) % 26 + 'A';
else if (c >= 'a' && c <= 'z')
c = (c - 'a' + 2) % 26 + 'a';
printf("%c", c);
}
putchar('\n');
}