- ベストアンサー
C言語での複素数の四則演算について
C言語で、大きさ2の配列を2つ使って、複素数の四則演算のプログラムを作るのですが、配列をどう使うか分からず手が出せない状態です。 C言語を始めたばかりですので、基礎的なことしか分かりませんが、回答お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#まぁ普通は#1の通り構造体とかcomplex.hだろうと思いますが、「配列で」という課題なのだろうということで。 配列がc[2]で複素数がa+biならc[0]=a,c[1]=bのように、それぞれに実部と虚部を入れることを想定しているのでしょう。 あとは普通の複素数演算と同じ要領で。
その他の回答 (2)
- jacta
- ベストアンサー率26% (845/3158)
正攻法だと、 #include <complex.h> #include <stdio.h> int main(void) { double complex a[2]; a[0] = 1.0 + 1.0*I; a[1] = -1.0 + 2.0*I; double complex t; t = a + b; printf("%f + %fi\n", creal(t), cimag(t)); t = a - b; printf("%f + %fi\n", creal(t), cimag(t)); t = a * b; printf("%f + %fi\n", creal(t), cimag(t)); t = a / b; printf("%f + %fi\n", creal(t), cimag(t)); return 0; } ですね。 ただ、これだと大きさ2の配列を1つしか使っていません。 処理系不明なので正確なことはいえませんが、組み込み型で複素数が扱えるのであればそうすべきです。
お礼
回答ありがとうございます。 <complex.h>を学んでいないので使うことができないんですが、この回答を参考に<complex.h>を勉強してみようと思います。
- eroermine
- ベストアンサー率18% (83/444)
複素数は構造体を使うのが普通ですよ。 検索すればいろいろでてくるでしょう。 最新のC言語規格だと複素数も標準で入ってるとか。
お礼
回答ありがとうございます。 検索すると構造体や<complex.h>を使ったものが見つかるのですが、まだ学んでないので使えないんですよ。
お礼
回答ありがとうございます。 配列の使い方が分からなかったのですが、この回答を参考に作ってみようと思います。