所以基本上我是将用户输入的两个数字相除并将其存储在变量中。该变量是时间,因此它既不能为负,也不能为任何小数部分。它必须是+ ve整数,我必须检查它。
int main()
{
int x1,v1,x2,v2;
cin>>x1>>v1>>x2>>v2;
int p=x1-x2;
int q=v2-v1;
float t=p/q;
int x=floor(t);
int y=ceil(t);
int temp;
if(x==y)
temp=1;
if(t>0 && temp==1)
cout<<"YES";
else
cout<<"NO";
}
但是即使对于2341/124这样的数字,它也会返回“ YES”。
答案 0 :(得分:3)
p/q
不会产生float
。
p
和q
都是整数,因此执行整数除法,结果是数学答案的“四舍五入”版本,就像另一个int
。
然后将这个新整数分配给float
没关系。
为避免这种情况,请在除法之前将一侧投射到float
,或使用std::div
。
一般来说,持续时间可以是负数,也可以是非整数。