大佬帮帮,为什么会是WA呢

P5705 【深基2.例7】数字反转

LmeH @ 2023-02-22 19:45:19

#include <stdio.h>
void reverseSentence();

int main()
{
    reverseSentence();
    return 0;
}

void reverseSentence()
{
    char c;
    scanf("%c", &c);

    if (c != '\n')
    {
        reverseSentence();
        printf("%c", c);
    }
}

by SCAR_L @ 2023-02-22 21:29:10

说问题:经过测试,发现输入文件可能末尾并没有换行,所以reverseSentence函数应该改成:

void reverseSentence()
{
    char c;
    if (scanf("%c", &c) != EOF) 
    {
        reverseSentence();
        printf("%c", c);
    }
}

这里再简单解释一下含义:其实scanf和cin都有返回值,cin的为成功读入次数,scanf好像为-1(即EOF)为读入失败(即读到了文件末尾)。

上代码:C++

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    cin>>s;
    for(int i=s.size()-1;i>=0;i--)
        cout<<s[i];
    return 0;
}

by SCAR_L @ 2023-02-22 21:30:27

(有用可以点个关注,若还是不对则私信)


|