lzagddsg @ 2022-08-05 15:02:40
本人非牛牛牛,日常刷题刷到此题,尝试半天也无解。好不容易,写出代码,运行发现+-打错。改完bug,再次运行,发现输出许多emoji。
呈上代码,如下所示。恳请各位,看看哪里出错。
#include <bits/stdc++.h>
using namespace std;
int n;
char c[100];
int main()
{
cin >> n >> c;
for (int i = 0; i < sizeof(c); i++)
{
c[i] += n;
if (c[i] > 122)
c[i] -= 25;
cout << c[i];
}
return 0;
}
输入完1(这里是换行符)qwe
后,运行结果:rxf☺☺☺☺☺☺☺☺……(由于cmd版本太低(我电脑出bug了(是真的bug,虫子!)所以暂时借别人的用,我也不好意思截图保存然后上传img啊),无法复制,只好手打,由于太懒,又怕打多了,所以只好省略n个张嘴笑的表情包)
我真的求々你们,告诉我我哪里叒错了,好么?
by OoXiao_QioO @ 2022-08-05 15:06:36
字符数组能用cin?
by __er @ 2022-08-05 15:07:38
@OoXiao_QioO 可以
by OoXiao_QioO @ 2022-08-05 15:08:18
哦哦,我感觉lz的思路完全错误了@__er
by OoXiao_QioO @ 2022-08-05 15:10:19
万一n=100000呢?c[i]-=25了,那c[i]就等于99925了,ASCII码有这玩意吗?不得爆掉
by xiaorui2007 @ 2022-08-05 15:12:18
sizeof(c)
错了,这是把整个c都遍历了一遍。
by __er @ 2022-08-05 15:13:34
@lzagddsg 你判断不对啊……字符串它不香吗(忽略大常数)
#include <bits/stdc++.h>
using namespace std;
string a;
long long i, n, j;
int main() {
cin >> n;
cin >> a;
for (i = 0; i < a.length(); i++) {
for (j = 1; j <= n; j++) {
if (a[i] == 'z') {
a[i] = 'a';
}
a[i]++;
}
}
cout << a;
return 0;
}
by xiaorui2007 @ 2022-08-05 15:13:43
if
改while
。
sizeof
改strlen
。
by __er @ 2022-08-05 15:14:07
字符数组不是strlen(c)
?
by xiaorui2007 @ 2022-08-05 15:15:39
c[i]-=26;
吧
by __er @ 2022-08-05 15:16:39
我给的代码A不了的,别ssd