c 来个大佬看看第四个点一直wa

P1914 小书童——凯撒密码

elong123 @ 2023-11-29 21:50:21

#include<string.h>
int main(){
    int n;
    char str[1001];
    memset(str,0,sizeof(str));
    scanf("%d",&n);
    scanf("%s",&str);
    int len = strlen(str);
    for(int i =0; i < len; i++){
        if(n == 26){
            printf("%s",str);
            break;
        }
        else if(n <26)
        printf("%c",str[i]+  n);
        else
        printf("%c",str[i] + n % 26);
    }
//  printf("%s",str);
    return 0;
}

wrong answer


by zhouyiran_2011 @ 2023-11-29 22:02:07

注意特判,n<26时,如果大于z,要减去26

#include<bits/stdc++.h>
int main(){
    int n;
    char str[1001];
    memset(str,0,sizeof(str));
    scanf("%d",&n);
    scanf("%s",&str);
    int len = strlen(str);
    for(int i =0; i < len; i++){
        if(n == 26){
            printf("%s",str);
            break;
        }
        else if(n <26){
            if(str[i]+  n > 'z')
                printf("%c",str[i]+  n - 26);
            else
                printf("%c",str[i]+  n);
        }

        else
        printf("%c",str[i] + n % 26);
    }
//  printf("%s",str);
    return 0;
}

by elong123 @ 2023-11-29 22:16:54

@zhouyiran_2011 感谢大佬小于26里边还有个特判我没有想到


|