社区讨论
萌新提问,VS2019和洛谷在线IDE结果不一致
P4414[COCI 2006/2007 #2] ABC参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo87afls
- 此快照首次捕获于
- 2023/10/27 13:56 2 年前
- 此快照最后确认于
- 2023/10/27 13:56 2 年前
CPP
#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的代码是这样:
CPP#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'
回复
共 2 条回复,欢迎继续交流。
正在加载回复...