环形加密的一个问题,实在是找不到哪里错了

#include <stdio.h>
int main()
{
    char c;
    int key;
    scanf("%c", &c);
    scanf("%d", &key);
    if(key>=0)
    {
        if(key>('z'-c))
        {
         c='a'+(key-('z'-c+1))%26;
         printf("%c",c);
        }
        else
        {
            c=c+key;
            printf("%c",c);
        }
    }
    else
    {
        if((-key)>c-'a')
        {
            c='z'+((key+(c-'a'+1))%26);
            printf("%c",c);
        }
        else
        {
            c=c+key;
            printf("%c",c);
        }
    }
        return 0;
}

img

img

img

#include <stdio.h>
int main()
{
    char c;
    int key;
    scanf("%c", &c);
    scanf("%d", &key);
    int offset = (c - 'a' + key + 26) % 26;
    printf("%c", offset + 'a');
    return 0;
}