複素数の演算なのですが・・・
Posted: 2012年11月28日(水) 21:02
はじめまして。今、複素数の課題でどうにもうまくいかず投稿させてもらうことにしました。
環境はwindows7 VC++2010でC言語は初心者です。
目標としては2数の実部虚部をdouble型で入力したあとに結果としてa+jb (jは虚数)のように表示したいのですが
いろいろ変えても正しく結果が表示されないので書き方自体に問題があるのだと思うのですが、printfのところの文の
中がおかしいのかなと思っていたりするのですがアドバイスおねがいします。
環境はwindows7 VC++2010でC言語は初心者です。
目標としては2数の実部虚部をdouble型で入力したあとに結果としてa+jb (jは虚数)のように表示したいのですが
いろいろ変えても正しく結果が表示されないので書き方自体に問題があるのだと思うのですが、printfのところの文の
中がおかしいのかなと思っていたりするのですがアドバイスおねがいします。
#include <stdio.h>
int main( void )
{
double a, b;
double c, d;
double x, y;
double p;
/* 二値入力 */
printf( "a + jb (a,b)= " ); // Z1の入力
scanf( "%d %d", &a,&b );
printf( "c + jd (c,d)= " );
scanf( "%d %d",&c,&d ); // Z2の入力
/* 加算 Z3=Z1+Z2 */
x=a+c;
y=b+d;
printf( "加: %f%+fj\n",x,y ); // Z3の出力
/* 減算 Z3=Z1-Z2 */
x=a-c;
y=b-d;
printf( "減: %f%+fj\n",x,y ); // Z3の出力
/* 乗算 Z3=Z1*Z2 */
x=a*c;
y=b*d;
printf( "乗: %f%+fj\n",x,y ); // Z3の出力
/* 除算 Z3=Z1/*Z2 */
p = c*c + d*d;
x=(a*c+b*d)/p;
y=(-a*d+c*b)/p;
printf( "除: %f%+fj\n",x,y ); // Z3の出力
return 0;