sdyzpf @ 2023-12-06 19:03:28
经反复检查,本题存在多余的换行符,使使用getline和getchar函数的初学者无法正常通过本题,观察讨论区,已有多名初学者因此未能通过本题,受到误导。
证据:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
string s;
cin>>n;
char c=getchar();
c=getchar();//此处吞掉了本不该存在的多余换行符,从而AC了本题,然而这行代码本应是错误的。
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;
}
by sdyzpf @ 2023-12-06 19:04:14
@离散小波变换°
@Maxmilite
麻烦两位了。
by CEFqwq @ 2023-12-06 19:59:50
那不应该加上
by sdyzpf @ 2023-12-06 21:03:28
@爱肝大模拟的tlxjy 有道理()。
by Maxmilite @ 2023-12-08 20:48:24
@sdyzpf Fixed, thx.