如何在不将数字写入C的情况下将数字与其他数字进行比较?

Kar*_*arl 5 c if-statement trigonometry

问题:我有IF语句if (x == 180 || x == 360 || x == 540等等

如果不180 + 180 * n全力以赴,我怎么能保持这个清单?

额外信息:如果sin(x*M_PI/180)为0,我想打印"不存在".当sin(180),sin(360)等时,它是0.

编辑:我已经尝试sin(x2 * M_PI / 180) == 0但它不起作用(可能因为它接近0但不是0)

P.B*_*Bra 9

使用模数操作数:%

if (x>0 && x%180==0) {..}
Run Code Online (Sandbox Code Playgroud)


Pau*_*bel 6

查看mod %运算符.在进行分割时,它会为您提供剩余部分.所以

(x % 180)   
Run Code Online (Sandbox Code Playgroud)

对于180的任何整数倍,它将为0(假设你没有那么高,你得到一些奇怪的环绕,比如说无符号数超过40亿.)

所以你可以使用.

if ((x % 180) == 0)
Run Code Online (Sandbox Code Playgroud)