c中的模算子

Modulus operator in c

本文关键字:      更新时间:2023-10-16

我需要检查c中一个数字的可整除性。我如何使用c中的模数运算符来检查一个数字是否能被另一个数字整除?我试着这样做:

if (file_int % 3) {
    printf("Hoppity n");
}

它没有工作,尽管file_int等于9。

我做错了什么?

谢谢

操作无效,因为该操作将返回0,该操作将被视为false。

你实际上需要:

if(!(file_int % 3)) {
    printf("Hoppity n");
}

if (file_int % 3)if (file_int % 3 != 0)相同,这与您想要的相反。

if (file_int % 3 == 0) {
    printf("Hoppity n");
}
// or
if (!(file_int % 3)) {
    printf("Hoppity n");
}

如果模数的结果为0,则表示它是可整除的。看起来您正在寻找它不能被3整除以继续循环,尽管您的代码片段不足以自信地假设您的意图。

因为如果它能被3整除,那么file_int % 3将等于0,并且if块不会执行。

if(file_int % 3 == 0) {
    // do stuff
}

mod运算符返回除法的余数…因为9能被3整除且无余数,所以返回值为0。

然而,如果非零,条件语句的计算结果为true,如果为零,则为false。您需要将其更改为(file_int % 3 == 0)

相关文章:
  • 没有找到相关文章