不知道为什么全WA。。。

P1914 小书童——凯撒密码

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 谢谢老板!!


|