• 締切済み

C言語の数学関数の質問

y=√xを計算する。任意のxを入力し、yを出力するプログラムを作成しなさい。ただし、x<0のとき、Yは虚数になるので次のように虚数らしく表示させること。 例) xを入力 :4 y=2.000000 yを入力 :-2 y=1.414214i この問題がわかりません。どのようなプログラムを作成すればよいですか?

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

ヒントだけ... double x; double complex y; y = csqrt(x);

  • hagy5217
  • ベストアンサー率25% (25/97)
回答No.3

No.2です。ルートにし忘れました。 1の方がおっしゃるようにsqrt使って代入してください。

  • hagy5217
  • ベストアンサー率25% (25/97)
回答No.2

C入れていないのでコンパイルしないとわかりませんが、 こんな感じじゃないでしょうか。 main(){ float x,y; printf("xを入力"); scanf("%f",&x); if(x<0){ y=x*(-1); printf("y=%f i",y); else{ y=x; printf("y=%f",y); } }

  • DT200
  • ベストアンサー率38% (63/164)
回答No.1

まず√はsqrt()で求められます。しかし負の値を与えるとエラーになるので 負の場合はfabs()で絶対値をとりsqrt()に入力します。 あとは負の時には表示した値の後に"i"を付ければOKです。 注意: #include <math.h>を忘れずに。

tatsuya178
質問者

お礼

ありがとうございます。アドバイスのおかげで、かなり、C言語が上達できたと思います。ありがとうございました。