【C言語】
xの二乗はx^2ではなくてpow(x,2.0)

誤り:x^2 Xの二乗 正解:pow(x,2.0)

警告:xの二乗はx^2ではない。math.hをincludeしてpow関数を使う。


■xの二乗はpow関数を使う

#include <stdio.h>
#include <math.h>//★必要

int main(void){
    puts("xの二乗の求め方");
    for(int x = 0 ; x < 10 ;x++){
        printf("%d*%d = %.1f\n",x,x,pow(x,2.0));
    }

    puts("2のべき乗の求め方");
    for(int x = 0 ; x < 10 ;x++){
        printf("2^%d = %.1f\n",x,pow(2.0,x));
    }
}

●注1:pow()のような数学関数を使う時は
必ずmath.hをincludeして下さい。

●注2:C言語では^はビットごとの
排他的ORなので
^ではべき乗は求まりません。


■コンパイル・リンク方法

間違い:gcc pow.c

正しい:gcc pow.c -lm
-lmを指定しないと数学関数ライブラリが
リンクされないので
undefined reference to `pow’の
リンクエラーが出ます


●実行結果

xの二乗の求め方
0*0 = 0.0
1*1 = 1.0
2*2 = 4.0
3*3 = 9.0
4*4 = 16.0
5*5 = 25.0
6*6 = 36.0
7*7 = 49.0
8*8 = 64.0
9*9 = 81.0
2のべき乗の求め方
2^0 = 1.0
2^1 = 2.0
2^2 = 4.0
2^3 = 8.0
2^4 = 16.0
2^5 = 32.0
2^6 = 64.0
2^7 = 128.0
2^8 = 256.0
2^9 = 512.0

参考:

C-FAQ 14.7: なぜCに、べき乗が組み込み関数で用意されていないのか。