• ベストアンサー

指数の表示

プログラミングの計算式において指数が出てきたときはどんな演算子を使えばいいんですか? 今やっていたのはM=(M+1/(1+(i+1/2)*h)^2)*hなんですが「^2」のところにエラーが発生します。ビット差演算子^は使えないみたいなことが出るのですが・・・どうしたらいいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • FM-8
  • ベストアンサー率39% (65/164)
回答No.2

Cは,普通にはありそうな演算子が用意されてません. 「^」は,排他的論理和の演算子ですね. 教科書の演算子の優先順位のページを一度見てみませんか? 方法はいくつかありますので,具体的に説明していただければ,いいアドバイスがえられますよ. > M=(M+1/(1+(i+1/2)*h)^2)*h については, X=(1+(i+1/2)*h) M=(M+1/(X*X))*h としますね.私なら. 一般的な,x^yを計算するとすれば,pow(x,y)を使うことになります. 標準関数にあります. 「pow」 で検索してみてください. ちなみに,powerという単語には,「力」という意味が一般的ですが,「べき乗」という意味もあります. double pow(double x,double y) { double A,B; A = y * log(x); B = exp(A); return B; } 上の関数はかなりいい加減ですが,こんなようなことをやってる関数です. z = x^y log(z)=y*log(x) z = exp(y*log(x)) という関係を使ってます.

その他の回答 (1)

回答No.1

C言語において「^」演算子はビットごとの排他的論理和をとる演算子です。 べき乗を求めたいときはpow()関数を使用します。

関連するQ&A