字符加密的思路我总是很乱,下面的是错误的,讲解。

输入一个英文小写字符和正整数k(k<26),将英文字母加密并输出。加密思想:将每个字母c加一个序数k, 即用它后面的第k个字母代替,变换公式:c = c + k。如果字母为z,则后一个字母是a,也就是字母表形成一个圆。
输入格式:

一个字母和一个序数。
输出格式:

输出加密后的字母。
输入样例:

在这里给出一组输入。例如:

b 11
结尾无空行

输出样例:

在这里给出相应的输出。例如:

m
结尾无空行

#include<stdio.h>
int main()
{
    int i,k;
    char s[81];
    gets(s);
    scanf("%d",&k);
    for(i=0;s[i];i++)
    {
        if(isupper(s[i]))
            s[i]=(s[i]-'A'+k)%26+'A';
        else if(islower(s[i]))
            s[i]=(s[i]-'a'+k)%26+'a';
    }
    puts(s);
    return 0;
}

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


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

题目说了是小写字母,还有只要将输入的一个字母+k就行了