私は、C++ で整数の約数を見つけるための非常に小さなプログラムに取り組んでいます。私のメイン メソッドは、int を var に変換し、int を引数として factor メソッドを呼び出します。コードは次のとおりです。
void factor(int num)
{
for(int x = 0; x < ((num + 2) / 2); x++)
{
if((num % x) == 0)
{
cout << x << " ";
}
}
}
プログラムは常に factor() 内でクラッシュします。このコードを使用すると、正常に動作します。
void factor(int num)
{
for(int x = 0; x < ((num + 2) / 2); x++)
{
{
cout << x << " ";
}
}
}
したがって、問題はのどこかにありif((num % x) == 0)
ます。その行をif((num % 2) == 0)
orに変更if((num % 5) == 0)
すると、正しい結果が得られます (テスト入力として 32 を使用しています)。
私は数年前にC++を学びましたが、そのほとんどを忘れていました. しかし、ループ カウンターにアクセスしようとすると、プログラムは依然としてクラッシュします。
Arch Linux 64ビットでGCC「4.9.0 20140604(プレリリース)」でCode::Blocks 13.12を使用しています。