为什么0分?

P1914 小书童——凯撒密码

zxxrrr @ 2017-09-27 02:07:13

0分代码如下:

#include <iostream>
#include <string>
using namespace std;
void move(int n, string &str)
{
    for(int i = 0; i < str.length(); i++)
    {
        while(n < 0)
            n += 26;
        str[i] = (char)((str[i] + n - 'a') % 26 + 'a');
    }
}
int main()
{
    int n;
    string n, id;
    cin >> n;
    fflush(stdin); 
    //最初这里写的是getchar();,显示Too many or too few lines.,换成刷新缓存区后错误变成了On line 1 column 1, read ^, expected d.
    getline(cin, id);
    move(n, id);
    cout << id;
    return 0;
}

后来我把输入那个地方改成了两个string型,都用getline就AC了,以下是AC的main函数代码:

int main()
{
    string n, id;
    getline(cin, n);
    getline(cin, id);
    move(stoi(n), id);
    cout << id;
    return 0;
}
前两种方式自己测试感觉并没有什么问题,为什么无法通过?

by normal @ 2017-10-03 21:57:12

呵呵


|