本题数据有误。
查看原帖
本题数据有误。
174477
sdyzpf楼主2023/12/6 19:03

经反复检查,本题存在多余的换行符,使使用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;
}
2023/12/6 19:03
加载中...