样例测试感觉都对了,0分代码,到底错在哪里了?求大佬~~~

P1914 小书童——凯撒密码

__hacker__ @ 2019-12-30 00:31:57

#include <bits/stdc++.h>
using namespace std;
char convert(char x){
    if(x>='a'&&x<='z') return x;
    else return convert(x-26);
}
int main(){
    char str[60];
    int n;
    cin>>n;
    cin.get();
    cin.getline(str,60);
    for(int i=0;str[i]!='\0';i++){
        cout<<convert(str[i]+n);
    }
    //system("pause");
    return 0;
}

by 傅天宇 @ 2020-01-15 10:55:54

直接加n,憨憨


by radwimps @ 2020-01-16 15:33:18

@傅天宇 大佬求解为什么不能直接加n


by 傅天宇 @ 2020-01-16 16:13:03

@radwimps ```cpp

include<bits/stdc++.h>

using namespace std; int main(){ char s[52]; int n; cin>>n; cin>>s; for(int i=0;s[i];i++){ cout<<char((s[i]-97+n)%26+97); } return 0; }```


by __hacker__ @ 2020-02-04 10:01:09

好久没看了,谢谢各位,我改过之后下面这个可以了上面的convert函数里面变量类型应该是int,而且这里面用cin.get()吸收回车好像总会出现点问题,用getchar或许好一些。
#include <bits/stdc++.h>
using namespace std;
char convert(int x){
    if(x>='a'&&x<='z') return x;
    else return convert(x-26);
}
int main(){
    char str[60];
    int n;
    cin>>n;
    cin>>str;
    for(int i=0;str[i]!='\0';i++){
        cout<<convert(str[i]+n);
    }
    //system("pause");
    return 0;
}

|