我在一段代码中遇到问题,其中我有一个if
语句,该语句检查复杂数组的对角元素,并且它们是否为(1,0)(表示实部为1,虚部为0)或非常接近然后继续;否则停止。但是由于某些原因,尽管元素为(0.999999,0.000000),(1.000001,0.000000)等,该操作始终返回0。
这是我的代码:
for (i=1; i<=n; i++){
if ((real(c[i][i][1]) < (1/100000)+1) && (imag(c[i][i][1]) < 1/100000) && (real(c[i][i][1]) > (-1/100000+1) && (imag(c[i][i][1]) > -1/100000)){
cout<<"Operation continues...";
}
else
return 0;
}
提前致谢。
最佳答案
由于分母的大小大于分子的大小,所以该整数除法得出0:
1/100000
您需要在此处至少使用一个浮点数。例如
1.0/100000
关于c++ - 如果条件问题(C++),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21187364/