1.定义表示复数的构造体
作成返回两个复数之积的函数zmul
z1 = (1.00000, 2.00000)
z2 = (-2.00000, -4.00000)
z1 * z2 = (6.00000, -8.00000)
- 定义表示向量的构造体
作成返回两向量内积的函数ip
v1 = (2.00000, 0.00000)
v2 = (-1.00000, -1.00000)
v1 * v2 = -2.0
1.定义表示复数的构造体
作成返回两个复数之积的函数zmul
z1 = (1.00000, 2.00000)
z2 = (-2.00000, -4.00000)
z1 * z2 = (6.00000, -8.00000)
v1 = (2.00000, 0.00000)
v2 = (-1.00000, -1.00000)
v1 * v2 = -2.0
#include <stdio.h>
typedef struct Complex_ {
double real;
double image;
}
Complex;
Complex zmul(Complex z1, Complex z2) {
Complex z;
z.real = z1.real * z2.real - z1.image * z2.image;
z.image = z1.real * z2.image + z1.image * z2.real;
return z;
}
typedef struct Vector2D_ {
double x;
double y;
} Vectro2D;
double dotProduct(Vectro2D v1, Vectro2D v2) {
return v1.x * v2.x + v1.y * v2.y;
}
int main() {
Complex z1 = {1.0, 2.0};
Complex z2 = {-2.0, -4.0};
Complex z = zmul(z1, z2);
printf("z1 * z2 = (%lf, %lf)\n", z.real, z.image);
Vectro2D v1 = {2.0, 0.0};
Vectro2D v2 = {-1.0, -1.0};
double d = dotProduct(v1, v2);
printf("v1 * v2 = %lf\n", d);
return 0;
}