0

cの数の除算性を確認する必要があります。Cのモジュラス演算子を使用して、ある数値が別の数値で割り切れるかどうかを確認するにはどうすればよいですか?私はこれをやってみました:

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

file_intは9ですが、機能しませんでした。

私は何を間違えましたか?

ありがとう

4

5 に答える 5

7

操作は0を返し、falseとして扱われるため、機能しませんでした。

実際に必要なもの:

if(!(file_int % 3)) {
    printf("Hoppity \n");
}
于 2011-12-29T20:51:47.120 に答える
3

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");
}
于 2011-12-29T20:53:02.577 に答える
1

モジュラスの結果が0の場合、それは均等に割り切れます。コードスニペットは自信を持って意図を想定するのに十分ではありませんが、ループを続行するために3で割り切れないように探しているように見えます。

于 2011-12-29T20:53:04.350 に答える
1

3で割り切れる場合はfile_int % 30に等しくなり、ifブロックは実行されないためです。

試す

if(file_int % 3 == 0) {
    // do stuff
}
于 2011-12-29T20:53:13.007 に答える
0

mod演算子は、除算の結果の余りを返します... 9は余りなしで3で割り切れるので、戻り値はゼロになります。

ただし、条件ステートメントは、ゼロ以外の場合はtrue、ゼロの場合はfalseと評価されます。に変更する必要があります(file_int % 3 == 0)

于 2011-12-29T20:53:46.003 に答える