ビットごとの XOR とべき乗演算子
C/C では、 ^ 演算子はべき乗ではなく、ビットごとの XOR 演算を実行します。べき乗を計算するには、pow() 関数を使用する必要があります。
pow() で考えられる問題
pow() を使用しようとしているが機能しない場合予想どおり、引数の型の不一致が原因である可能性があります。 pow() はデフォルトで double 引数を取り、整数を渡す場合は、整数を double にキャストする必要がある場合があります。
修正例
これは、の修正バージョンです。型キャストが適用されたコード:
#include <stdio.h> #include <math.h> void main(void) { int a; int result; int sum = 0; printf("Enter a number: "); scanf("%d", &a); for(int i = 1; i <= 4; i++) { result = (int) pow((double) a, i); sum += result; } printf("%d\n", sum); }
pow() 関数は double を返すことに注意してください。結果を int にキャストして、元のコードと一致させます。
以上がC/C : 累乗に `^` の代わりに `pow()` を使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。