bf29__lj @ 2023-08-17 18:46:23
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int a;
int t;
cin >> a;
//cin.ignore();
int ofs = a % 26;
while ((t = getchar()) != '\n')
{
t = (t + ofs > 'z') ? (t + ofs - 26) : (t + ofs);
putchar(t);
}
return 0;
}
在自己电脑上运行好像没问题
by shenwentao @ 2023-08-17 19:03:58
@bf29__lj 少输入了一个变量
by bf29__lj @ 2023-08-17 19:10:51
@shenwentao 是哪个变量
by xiarui1 @ 2023-08-17 19:26:30
建议用string读入
by Score_Elevate @ 2023-09-01 20:01:18
@bf29__lj t是int哦,亲
by Score_Elevate @ 2023-09-01 20:10:21
@bf29__lj 改好了
#include <bits/stdc++.h>
using namespace std;
int main() {
int a;
char t;//问题所在,你t原本定义的是int,你不WA谁WA
cin >> a;
//int ofs = a % 26;这种情况可以不用特判
while (cin >> t)//没必要那样,直接cin判断就行,换行自动结束,节省空间的想法很好,但是实现错了
{
char f = char ( (t - 'a' + a ) % 26 + 'a');/*先拿输入的t的ascall码去减去a的97在加上往后的位数
再去mod 26,得出他的在小写字母里第几位,再加上小写字母ascall最小的a得出原来的字母的ascall码
在强行转换char得出答案
*/
cout << f;
}
return 0;
}
点个关注不迷路、
by bf29__lj @ 2023-09-05 18:01:59
@ZD_LZD 谢谢老板!!