#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'