我在一段代码中遇到问题,其中我有一个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/

10-10 13:32