|
> 今自分では構造体の勉強をしていて、ちょっと興味を持ったもので書いてみたんです。
どんな風に書いたのですか。
では、私も書いてみましょう。
#include <stdio.h>
typedef struct { double re, im; } Complex;
Complex add(Complex a, Complex b)
{
Complex c; c.re = a.re + b.re; c.im = a.im + b.im; return c;
}
Complex sub(Complex a, Complex b)
{
Complex c; c.re = a.re - b.re; c.im = a.im - b.im; return c;
}
Complex mlt(Complex a, Complex b)
{
Complex c;
c.re = a.re * b.re - a.im * b.im;
c.im = a.re * b.im + a.im * b.re;
return c;
}
Complex dvd(Complex a, Complex b)
{
Complex c; double d = b.re * b.re + b.im * b.im;
c.re = (a.re * b.re + a.im * b.im) / d;
c.im = (a.re * b.im - a.im * b.re) / d;
return c;
}
Complex make(double re, double im)
{
Complex z; z.re = re; z.im = im; return z;
}
int main()
{
Complex a = {1, 2}; // a = 1 + 2i
Complex b;
Complex s, d, p, q;
b = make(3, -4); // b = 3 - 4i
s = add(a, b);
d = sub(a, b);
p = mlt(a, b);
q = dvd(a, b);
printf("a + b = (%g,%g)\n", s.re, s.im);
printf("a - b = (%g,%g)\n", d.re, d.im);
printf("a * b = (%g,%g)\n", p.re, p.im);
printf("a / b = (%g,%g)\n", q.re, q.im);
return 0;
}
|