为什么n是24及25时出错

P1914 小书童——凯撒密码

xfzyb1552 @ 2019-03-04 20:27:57

include<bits/stdc++.h>

using namespace std; char st[55]; int main() { int n,i,l; char t; cin>>n; cin>>st; l=strlen(st); for(i=0;i<l;i++) { if(n==26||n==0) cout<<st[i]; else if((n<26)&&(n>0)) { t=st[i]+n; if(t>122) t=t-26; cout<<t; } else if(n>26) { t=st[i]+n-26; if(t>122) t-=26; cout<<t; }
} return 0; }


by aminoas @ 2019-03-04 20:29:46

希望更丰富的展现?使用Mark♂down


by aminoas @ 2019-03-04 20:30:52

#include<bits/stdc++.h>
using namespace std; 
char st[55]; 
int main()
{ 
int n,i,l; 
char t; 
cin>>n; 
cin>>st;
l=strlen(st); 
for(i=0;i<l;i++) 
{ 
if(n==26||n==0) cout<<st[i];
else if((n<26)&&(n>0)) 
{ 
t=st[i]+n; 
if(t>122) t=t-26; 
cout<<t;
} 
else if(n>26) 
{ t=st[i]+n-26;
if(t>122) t-=26; 
cout<<t; }
}
return 0;
}

by WYXkk @ 2019-03-04 20:31:41

@2018J1605 Markdown。。。
-------------------- ^ -------------


by aminoas @ 2019-03-04 20:32:46

Mark♀down...


by WYXkk @ 2019-03-04 20:33:44

@2018J1605 你是哲♂学♂家吗?


by 142857cs @ 2019-03-04 20:46:17

计算结果超出了signed char范围的最大值,爆负数了,要用unsigned char...


by xfzyb1552 @ 2019-03-04 20:47:49

@142857cs 谢谢!


|