这是以下问题的模型解决方案代码;
“输入包含T个测试用例。输入的第一行被赋予T。 每个测试用例由三行整数组成,这些行由单个空格分隔,每行由x和y坐标的三个随机点组成。浏览器视口中左上像素的坐标为(1,1),右下像素的坐标为(1000,1000)。所有坐标都位于视口内,并且每个点的位置都不同。“
这是输入示例。
2
5 5
5 7
7 5
30 20
10 10
10 20
7 7
30 10
最后两行是问题的答案。
这是我的三个问题。 1)当我们在初始化中使用cin语句时会发生什么?它接收用户在for循环的初始化中将执行的操作数。我了解此cin声明正常运行。我不明白此代码如何知道此for循环必须重复多少次。这是因为初始化后用户未对T进行任何操作。 “增加/减少”也没有作用。
2)谷歌搜索之后,我了解到条件中存在cin时,当没有更多输入或输入的类型与变量的类型不匹配时,循环结束。但是在这段代码中,当重复时间(T)结束时,for循环结束。这怎么可能发生?
3)最后,结果应在所有输入完成后呈现,而不是一一对应。那么,for循环如何记住每组(3个输入)的结果?
我不是讲英语的人。T.T谢谢您阅读我的问题。
#include<iostream>
int main()
{
int T,a,b,c,A,B,C;
for(std::cin>>T; std::cin>>a>>A>>b>>B>>c>>C; printf("%d %d\n",a^b^c,A^B^C));
}
答案 0 :(得分:1)
在初始化中使用
cin
语句时会发生什么?
for()
循环的那一部分可以包含任何简单语句,而不是
只是初始化语句。该语句仅执行一次。对于
循环
for ( init condition ; iteration )
statement
实际上等效于以下代码:
{
init
while ( condition )
{
statement
iteration;
}
}
但是在这段代码中,当重复时间(T)为 过度。这怎么可能发生?
operator >>
重载的流返回其作用的流。类
ios_base
是所有流的共同父对象,包含以下内容
运算符
std::ios_base::operator bool()
该运算符等效于good()
方法。如果>>
无法从输入流中读取和解析值,则good()返回false,
循环中断。所提供的代码中未使用T。
然后,该for循环如何记住每个集合的结果(3 输入)?
不是。读取每组后打印结果。
PS。在程序员之后阅读\ proof-check代码的人往往会对那些编写for()
这样的循环的人怀有杀人的意图。
答案 1 :(得分:0)
如果我们使用cin语句作为初始化,则执行一次。它将接收输入并将值放在变量T中。初始化后对T无效,例如递增或递减其值。
这不是事实。重复T次后代码不会结束。只要给出(有效)输入,此for循环将继续。这是因为for循环的条件部分包含cin语句。也就是说,只要您的cin语句成功,for循环就会继续。
不能。每次循环运行时,都会覆盖变量a,A,b,B,c和C。因此,旧值将丢失。