80分,大佬帮看下

P1914 小书童——凯撒密码

1608张嘉诚 @ 2019-07-28 23:31:03

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
    int n,x,s,i;
    scanf("%d",&n);
    char c[51];
    scanf("%s",c);
    x=n%26; s=strlen(c);
    for(i=0;i<=s-1;i++){
        c[i]=c[i]+x;
        if(c[i]-'z'>0)
        c[i]=c[i]-26;
            printf("%c",c[i]);
    }

    return 0;
}

by 徐燕玲 @ 2019-08-05 16:59:24

有时候c[i]+x会超出ASCII码表的边界值(你可以自己去网上查找ASCII码表最大值),比如说‘z’+25。可以先把所有的字符减去26,处理完后判断是否小于‘a',如果小于再加上26。


|