问题标题: 酷町堂:7807 凯撒密码

0
0
已解决
万睿言
万睿言
初级光能
初级光能

今天满心欢喜的看到了这道题目:https://ke.codingtang.com/#/problem/problemSub?id=7807

点进去发现跟https://ke.codingtang.com/#/problem/problemSub?id=2658这道题目有点像,于是就按照这道题目的方法做

试了第一个样例过了就提交了,所以喜提了一个WA0分

这是第一个0分代码:

string s;
int n;
int main(){
	cin>>s>>n;
	for(int i=0;i<s.length();i++){
		if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'){
			if(s[i]+n<='Z'||s[i]+n<='z'){
				s[i]+=n;
			}else{
				s[i]+=n-26;
			}
		}
   } 
   cout<<s;

我试了第2个样例之后发现我没有区分大小写,于是我改了改我的代码

就出现了这样的输出:

这是样例:

 

样例2输入: antDZYO 30

样例2结果: erxHDCS

这是我的输出:

erxH^]S

这么神奇的输出由这段代码造成:

string s;
int n;
int main(){
	cin>>s>>n;
	for(int i=0;i<s.length();i++){
		if(s[i]>='A'&&s[i]<='Z'){
			if(s[i]+n<='Z'){
				s[i]+=n;
			}else{
				s[i]+=(n-26);
			}
		}else if(s[i]>='a'&&s[i]<='z'){
			if(s[i]+n<='z'){
				s[i]+=n;
			}else{
				s[i]+=(n-26);
			}
		}
	} 
	cout<<s;

有没有大佬来帮忙看看错在哪里

万睿言在2022-08-23 14:48:12追加了内容

@宋灏 你做这题了没


0
已采纳
宋灏
宋灏
初级光能
初级光能

取件码563773

你懂的

懒得回答

0
万睿言
万睿言
初级光能
初级光能

@宋灏 搜不到你的qq啊

万睿言在2022-08-24 15:55:52追加了内容

@宋灏 

我要回答