0

私のプログラムにはこのコードがあります:(デバッグの目的でcoutステートメントを含めました)

cout << "b: " << b << "\na: " << a;
constant[0] = (-b / (2 * a));
cout << "\nconstant: " << constant[0] << endl;

私が得る出力は次のとおりです。

b: -4
a: 3
constant: 0

私はconstant[0]を-(-4)/(2 * 3)、つまり0.6666に等しくしようとしていますが...そこに置いた式で何が間違っているのでしょうか。

4

3 に答える 3

9

間違いなく、整数として定義されているaためb、数式全体が整数演算で実行されます。それらを浮動小数点数として定義するか、次のようにします。

constant[0] = (-b / (2.0 * a));

これにより、数学は浮動小数点で実行されます。

于 2010-02-23T07:48:54.453 に答える
2

一定integerですか?ab整数ですか?

cout << "b: " << b << "\na: " << a;
constant[0] = (-b / (2.0 * a));
cout << "\nconstant: " << constant[0] << endl;

整数の除算や変数の型が問題です。

于 2010-02-23T07:48:54.213 に答える
1

定数2はintです。2.0にします。

変数aとbもdoubleまたはfloatであることを確認しますか?

于 2010-02-23T07:48:45.040 に答える