有人可以用C ++检查我的计时器程序

时间:2014-03-13 10:27:24

标签: c++

我想编写一个程序,检查X,Y和Z值的变化是否在5秒内超过10的差值,应该调用initialValues()函数。

我编写了以下程序,但在运行时崩溃,程序无法运行。然后我必须强行关闭程序。

下面的

是我的计时器程序的主要部分。删除此特定部分后,我的程序不会崩溃。

我该如何解决这个问题?

 while(X<=X+10 || X>=X-10 && Y<=Y+10 || Y>=Y-10 && Z<=Z+10 || Z>=Z-10)
   {
       clock_t t;
       t = clock();
       t = clock()-t;
       float timer = t/CLOCKS_PER_SEC;
       if(timer==5)
       {
           initialValues(X,Y,Z);
           cout<<"X = "<<initialX<<" Y = "<<initialY<<" Z = "<<initialZ<<endl;
       }
   }

1 个答案:

答案 0 :(得分:1)

你没有说出函数initialValues的作用,所以我们无法知道那里是否有狡猾的东西。 但是,你似乎有一个无限循环。检查while循环中的条件,并将括号插入到应该一起评估的单独条件中,例如,对于exmaple:

while( ( X<=X+10 || X>=X-10 ) && ( Y<=Y+10 || Y>=Y-10 ) && ( Z<=Z+10 || Z>=Z-10) )

请注意额外的括号。

特别是,您应该按照其他用户的建议检查您指定的条件是否始终为真。在我看来,X <= X + 10总是,同样适用于其他条件。