構造体を用いて、複素数の掛け算を表したいのですが、うまくいきません。初学者で、教科書などを見てもよくわかりませんでした。どのようにすればうまく表せるか教えていただけないでしょうか?
c
1コード 2#include <stdio.h> 3#include <math.h> 4 5typedef struct 6{ 7 double re, im; 8} Complex; 9 10Complex Complex_create( double re, double im ) 11{ 12 Complex z1; 13 z1.re = re; 14 z1.im = im; 15 return z1; 16 Complex z2; 17 z2.re = re; 18 z2.im = im; 19 return z2; 20} 21 22double Complex_mul( Complex * z1, Complex * z2 ) 23{ 24 double re3 = z1->re * z2->re - z2->im * z2->im; 25 double im3 = z1->im * z1->re + z1->re * z2->im; 26 return re3; 27 return im3; 28} 29 30int main() 31{ 32 double a1, b1; 33 double a2, b2; 34 Complex z1 = Complex_create( a1,b1); 35 Complex z2 = Complex_create( a2,b2); 36 printf("複素数の掛け算は%lf + %lfiです。\n", Complex_mul(re3),Complex_mul(im3)); 37 38 return 0; 39}
c
1実行結果 2 35 | printf("複素数の掛け算は%lf + %lfiです。\n", Complex_mul(re3),Complex_mul(im3)); 3 | ^~~~~~~~~~~ 4ensyuu6-2.c:21:8: note: declared here 5 21 | double Complex_mul( Complex * z1, Complex * z2 ) 6 | ^~~~~~~~~~~ 7ensyuu6-2.c:35:90: error: ‘im3’ undeclared (first use in this function) 8 35 | printf("複素数の掛け算は%lf + %lfiです。\n", Complex_mul(re3),Complex_mul(im3)); 9 | ^~~ 10ensyuu6-2.c:35:78: error: too few arguments to function ‘Complex_mul’ 11 35 | printf("複素数の掛け算は%lf + %lfiです。\n", Complex_mul(re3),Complex_mul(im3)); 12 | ^~~~~~~~~~~ 13ensyuu6-2.c:21:8: note: declared here 14 21 | double Complex_mul( Complex * z1, Complex * z2 )
複素数がどうのこうのより先に
C言語の入門レベルの学習をしましょう。
回答2件
あなたの回答
tips
プレビュー