1. ホーム
  2. c++

[解決済み] パワーオペレーター(^)が使えないのはなぜですか?

2022-03-13 08:06:50

質問

#include <stdio.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 = a ^ i;

        sum += result;
    }
    printf("%d\n", sum);
}

なぜ ^ はパワーオペレータとして機能しないのですか?

解決方法を教えてください。

さて、まず最初に ^ 演算子は、ビット単位のXORです。累乗とは関係ない。

さて、あなたの問題点である pow() 関数を使用します。 ググってみると は、引数の1つをdoubleにキャストすることが有効であることを示しています。

result = (int) pow((double) a,i);

また、結果を int として、すべて pow() オーバーロードはdoubleを返すが int . MSコンパイラが使えないので、上のコードは確認できなかったけど。

C99から。 があり、また floatlong double という関数があります。 powfpowl それぞれ もし、お役に立てれば幸いです。