我正在对旅行骑士问题进行非常简单的 BFS 搜索。不幸的是,我的输入决定出错。这段代码给出了正确的结果。
char start[2], destination[2];
scanf("%s", start); // input string is "e2"
printf("%d %d\n", start[0], start[1]); // start[0] = 101, start[1] = 50
(in ASCII, 101 is 'e' and 50 is '2')
我用的那个
scanf("%s", start); // input string is "e2"
scanf("%s", destination); // input string is "e4"
printf("%d %d\n", start[0], start[1]); // start[0] = 0, start[1] = 50
或者
scanf("%s %s", start, destination); // input string is "e2 e4"
printf("%d %d\n", start[0], start[1]); // start[0] = 0, start[1] = 50
目标数组虽然不会出现这种错误。我做错什么了吗?如果这是一个错误,我可以使用其他替代方法吗?
编辑:开始被声明为 char[2],与目的地一样。SSCCE
void main()
{
char start[2], destination[2];
scanf("%s", start); // input string is "e2"
scanf("%s", destination); // input string is "e4"
printf("%d %d\n", start[0], start[1]); // start[0] = 101, start[1] = 50
}