Math.hライブラリからPOW() - 関数を使用して適用する方法

StackOverflow https://stackoverflow.com/questions/9344983

  •  27-10-2019
  •  | 
  •  

質問

そこで、関数のリターン値を特定のパワーに上げる必要があるコードを少し書いています。 C ++では実際にはXORオペレーターなどであるため、「^」オペレーターを使用することは役に立たないことを最近発見しました。これが私が書きたいコードです:

int answer = pow(base, raisingTo(power));


今、誰もがこれが正しいかどうか教えてもらえますか?コードについて説明します。皆さんが気づいているようにint変数の回答を宣言し、「base」と呼ばれる変数の値に初期化し、「電力」と呼ばれる他の変数に作用するrapingTo()関数の返品値に引き上げられました。これを行うと(Visual C ++ 2010 Express Editionでコードを編集してコンパイルします)、「POW」という単語の下に赤いダッシュが表示され、「過負荷機能の複数のインスタンス」が引数と一致するエラーが表示されます。リスト"

誰かが私のためにこの問題を解決してもらえますか?また、このPOW()機能全体が実際にどのように機能するかを私に説明していただけませんか。

役に立ちましたか?

解決

ドキュメンテーション すでに明示的に述べています:

pow(int, int) 過負荷は利用できなくなりました。この過負荷を使用すると、コンパイラはC2668を発する可能性があります 編集:それはあなたが得るエラーです. 。この問題を回避するには、最初のパラメーターをダブル、フロート、または長いダブルにキャストします。

また、計算します ベースパワー あなたはただ書くだけです

pow(base, power)

そして、上記のヒントで:

int result = (int) pow((double)base, power);

他のヒント

pow()関数は、いずれかを返します double またはa float, 、したがって、最初のステップは変更することです answer それらの1つに。第二に、何ですか raisingTo() 戻る。あなたが明白ではないことをしていない限り、あなたはそれを必要としませんが、それでも機能するはずです。また、両方の議論が必要です doubles, 、 によると これ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top