经反复检查,本题存在多余的换行符,使使用getline和getchar函数的初学者无法正常通过本题,观察讨论区,已有多名初学者因此未能通过本题,受到误导。
证据:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
string s;
cin>>n;
char c=getchar();
c=getchar();
getline(cin,s);
for(int i = 0;i < s.size();i ++){
int ss = s[i] + n;
if(ss > 'z')ss -= 26;
s[i] = ss;
}
cout<<s;
return 0;
}
此外,还建议加强本题数据,本题存在初学者代码在易错点上出错却能通过本题的情况。
错误代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
string s;
cin>>n
cin>>s;
for(int i = 0;i < s.size();i ++){
int ss = s[i] + n;
if(ss > 'z')ss -= 26;
s[i] = ss;
}
cout<<s;
return 0;
}