为啥是0分呢我觉得没毛病啊

P1914 小书童——凯撒密码

1111imt @ 2019-08-30 09:25:28

include<bits/stdc++.h>

using namespace std;
char b[106];
int main()
{
int n,la;
cin>>n>>b;
la=strlen(b);
for(int i=1;i<la;i++){
b[i]=b[i]+n;
if(b[i]>'n'){
b[i]-=26;
cout<<b[i];
}

}  
return 0;          

}


by 菜鸡gyf @ 2019-08-30 09:38:02

应该是if(b[i]>'z')


by 超级小周 @ 2019-08-30 09:40:30

问题大着呐


by peppaking8 @ 2019-08-30 09:41:59

%%%


by 1111imt @ 2019-08-30 09:45:38

不是刚才那个


by 1111imt @ 2019-08-30 09:46:13

是这个

include<bits/stdc++.h>

using namespace std;
char b[106];
int main()
{
int n,la;
cin>>n>>b;
la=strlen(b);
for(int i=0;i<la;i++){
if(b[i]>'z'){
b[i]-=26;
} else
b[i]=b[i]+n;
}
cout<<b[i];
}
return 0;
}


by 1111imt @ 2019-08-30 09:46:36

这个是错的


by 1111imt @ 2019-08-30 09:47:50

中间漏了一个b[i]=b[i]+n;


by jinyijiang @ 2019-08-30 09:48:57

先b[i]=b[i]+n
然后再while(b[i]>'z')


by 超级小周 @ 2019-08-30 09:59:12

@1111imt 这题最好把字符转换为数字进行加减,字符直接加减会出现莫名的错误。最高60分


by 1111imt @ 2019-08-30 10:01:55

谢谢过了


| 下一页