萌新提问,VS2019和洛谷在线IDE结果不一致
查看原帖
萌新提问,VS2019和洛谷在线IDE结果不一致
777115
Revui楼主2022/8/24 00:46
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
    int num[3];
    char word[3];
    scanf("%d %d %d", &num[0], &num[1], &num[2]);
    getchar();
    scanf("%c%c%c",&word[0], &word[1], &word[2]);
    sort(num, num + 3);
    printf("%d %d %d", num[word[0] - 'A'], num[word[1] - 'A'], num[word[2] - 'A']);
    return 0;
}

这是我本地VS2019可以AC的代码,但是在洛谷IDE却WA 。

经过调试,洛谷AC的代码是这样:

#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
    int num[3];
    char word[4];
    scanf("%d %d %d", &num[0], &num[1], &num[2]);
    getchar();
    scanf("%c%c%c%c",&word[0],&word[1], &word[2], &word[3]);
    sort(num, num + 3);
    printf("%d %d %d", num[word[1] - 'A'], num[word[2] - 'A'], num[word[3] - 'A']);
    return 0;
}

输入:6 4 2

CAB

输出:6 2 4

但是本地VS2019的输出是:4 6 1380392

我想问题大概是输入数据第一行末尾的换行符?

getchar()函数,在本地VS2019似乎是把换行符从输入缓冲区里给去掉了,但是洛谷IDE似乎还保留,所以word数组第一个字符是'\n'

2022/8/24 00:46
加载中...