#include <stdio.h>
// main関数より後で定義される関数のプロトタイプ宣言
double max(double x, double y);
double d_abs(double x);
double cube(double x);
// main関数
int main(void) {
// double型の変数を宣言
double a, b;
a = -3.2;
b = 1.4;
// printfの書式指定子を%fに変更し、double型の計算結果を出力
printf("max(|%f|, (%f)^3) = %f\n", a
, b
, max
(d_abs
(a
), cube
(b
)));
return 0;
}
// 二つの引数の大きい方の値を返す関数 (double版)
double max(double x, double y) {
return (x > y) ? x : y;
}
// 引数の絶対値を返す関数 (double版)
// 標準ライブラリのabsと区別するためd_absという名前にしています
double d_abs(double x) {
return (x > 0) ? x : -x;
}
// 引数の三乗の値を返す関数 (double版)
double cube(double x) {
return x * x * x;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBtYWlu6Zai5pWw44KI44KK5b6M44Gn5a6a576p44GV44KM44KL6Zai5pWw44Gu44OX44Ot44OI44K/44Kk44OX5a6j6KiACmRvdWJsZSBtYXgoZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlIGRfYWJzKGRvdWJsZSB4KTsKZG91YmxlIGN1YmUoZG91YmxlIHgpOwoKLy8gbWFpbumWouaVsAppbnQgbWFpbih2b2lkKSB7CiAgICAvLyBkb3VibGXlnovjga7lpInmlbDjgpLlrqPoqIAKICAgIGRvdWJsZSBhLCBiOwogICAgCiAgICBhID0gLTMuMjsKICAgIGIgPSAxLjQ7CiAgICAKICAgIC8vIHByaW50ZuOBruabuOW8j+aMh+WumuWtkOOCkiVm44Gr5aSJ5pu044GX44CBZG91Ymxl5Z6L44Gu6KiI566X57WQ5p6c44KS5Ye65YqbCiAgICBwcmludGYoIm1heCh8JWZ8LCAoJWYpXjMpID0gJWZcbiIsIGEsIGIsIG1heChkX2FicyhhKSwgY3ViZShiKSkpOwogICAgCiAgICByZXR1cm4gMDsKfQoKLy8g5LqM44Gk44Gu5byV5pWw44Gu5aSn44GN44GE5pa544Gu5YCk44KS6L+U44GZ6Zai5pWwIChkb3VibGXniYgpCmRvdWJsZSBtYXgoZG91YmxlIHgsIGRvdWJsZSB5KSB7CiAgICByZXR1cm4gKHggPiB5KSA/IHggOiB5Owp9CgovLyDlvJXmlbDjga7ntbblr77lgKTjgpLov5TjgZnplqLmlbAgKGRvdWJsZeeJiCkKLy8g5qiZ5rqW44Op44Kk44OW44Op44Oq44GuYWJz44Go5Yy65Yil44GZ44KL44Gf44KBZF9hYnPjgajjgYTjgYblkI3liY3jgavjgZfjgabjgYTjgb7jgZkKZG91YmxlIGRfYWJzKGRvdWJsZSB4KSB7CiAgICByZXR1cm4gKHggPiAwKSA/IHggOiAteDsKfQoKLy8g5byV5pWw44Gu5LiJ5LmX44Gu5YCk44KS6L+U44GZ6Zai5pWwIChkb3VibGXniYgpCmRvdWJsZSBjdWJlKGRvdWJsZSB4KSB7CiAgICByZXR1cm4geCAqIHggKiB4Owp9