koishi0514 @ 2024-10-09 21:45:13
#include <stdio.h>
int main() {
int a[3];
scanf("%d %d %d", &a[0], &a[1], &a[2]);
getchar();
getchar();
char b[3];
scanf("%c%c%c", &b[0],&b[1],&b[2]);
for (int i = 0; i < 3; i++) {
for (int j = i; j < 3; j++) {
if (a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
if (b[0] == 'A') {
printf("%d ", a[0]);
} else if (b[0] == 'B') {
printf("%d ", a[1]);
} else if (b[0] == 'C') {
printf("%d ", a[2]);
}
if (b[1] == 'A') {
printf("%d ", a[0]);
} else if (b[1] == 'B') {
printf("%d ", a[1]);
} else if (b[1] == 'C') {
printf("%d ", a[2]);
}
if (b[2] == 'A') {
printf("%d", a[0]);
} else if (b[2] == 'B') {
printf("%d", a[1]);
} else if (b[2] == 'C') {
printf("%d", a[2]);
}
return 0;
}
by Gcc_Gdb_7_8_1 @ 2024-10-09 21:46:38
@koishi0514 getchar()
应该是拿来读换行 (\n
) 的。
by koishi0514 @ 2024-10-09 21:52:35
@Gcc_Gdb_7_8_1 加两行是为啥呢,我加一行零分,加两行满分,但自己调试的时候加一行结果是对的,加两行第一个数字莫名消失
by LionBlaze @ 2024-10-09 21:55:46
@koishi0514 数据有问题(可能不能说是问题),换行符是 \r\n
两个字符。
by Gcc_Gdb_7_8_1 @ 2024-10-09 21:56:53
@koishi0514 可能是 Linux 环境和 Windows 环境的差别吧...洛谷评测机是 Linux 环境,你家电脑应该是 Windows。
by Gcc_Gdb_7_8_1 @ 2024-10-09 21:57:45
球关
by Gcc_Gdb_7_8_1 @ 2024-10-09 21:59:34
@koishi0514 建议以后读连续几个字符且之间没有空格是使用 scanf("%s", ...)
(即读字符串)
by koishi0514 @ 2024-10-09 22:01:22
@Gcc_Gdb_7_8_1 Linux和windows的换行符不一样啊,而且洛谷居然是Linux环境,这下大彻大悟了,感谢大佬
by forzhoufanting @ 2024-10-15 20:38:18
无敌了,他数据输入最后一个是有空格的