程序中的输入和输出

Input and Output in program

本文关键字:输出 输入 程序      更新时间:2023-10-16

我的程序中的输入和输出有问题。

我无法确保每匹马的BFS响应是分开的,最后总结了给定数量示例的所有马的BFS响应。

对于此示例,一切正常:

  • 1- 示例数
  • 1 - 国际象棋骑士的数量
  • 5
  • 5 - 起点
  • 5 6 - 最后一点

答案: 3

但不是这个例子:

  • 1- 示例数
  • 2 - 国际象棋骑士的数量
  • 0
  • 0 - 第一个骑士的起点
  • 1 0 - 第二骑士的起点
  • 0 1 - 第一个骑士的最后一点
  • 1
  • 1 - 第二骑士的最后一点

我需要对第一匹马和第二匹马的答案(BFS(进行总结(第一匹= 2,第二匹= 2,所有马= 4(。但是如果你使用我的代码(下面(检查这个例子,那么答案是 3,程序只考虑第一匹马。

这是我的代码:

int main()
{
int number_of_examples;
cin >> number_of_examples;                             //number of examples   
for (int i = 1; i <= number_of_examples; i++) {
int number_of_horse;
cin >> number_of_horse;                         //number of horse
vector<Node> src;
vector<Node> dest;

int x, y;
for (int i = 1; i <= number_of_horse; i++)
cin >> x >> y;
src.push_back(Node(x, y));
for (int i = 1; i <= number_of_horse; i++)
cin >> x >> y;
dest.push_back(Node(x, y));
for (int i = 0; i < src.size(); i++)
{
for (int j = 0; j < dest.size(); j++)
{
cout << BFS(src[i], dest[j]);
}
}
}

return 0;
}

程序只考虑第一匹马

正如你告诉它的那样...

for (int i = 1; i <= number_of_horse; i++)
cin >> x >> y;
src.push_back(Node(x, y));

仅重复for后的第一行。如果你想(我敢打赌你(重复多个语句,你需要把它们括在一个块中:

for (int i = 1; i <= number_of_horse; i++) {
cin >> x >> y;
src.push_back(Node(x, y));
}

您可能想阅读有关for语法的更多信息。