01 复数的加减乘除操作

 1 #include<stdio.h>
 2 #include<math.h>
 3 struct Complex {
 4     double a;//实部
 5     double b;//虚部
 6 };
 7 void initComplex(double x, double y) {
 8     printf("%.2f+%.2f*i
", x, y);
 9 }
10 void add(struct Complex complex1, struct Complex complex2) {
11     double sumA = complex1.a + complex2.a;
12     double sumB = complex1.b + complex2.b;
13     printf("两复数的和是:
");
14     initComplex(sumA, sumB);
15 }
16 void minus(struct Complex complex1, struct Complex complex2) {
17     double minusA = complex1.a - complex2.a;
18     double minusB = complex1.b - complex2.b;
19     printf("两复数的差是:
");
20     initComplex(minusA, minusB);
21 }
22 void multiply(struct Complex complex1, struct Complex complex2) {
23     double mulA = complex1.a * complex2.a - complex1.b * complex2.b;
24     double mulB = complex1.b * complex2.a + complex1.a * complex2.b;
25     printf("两复数的积是:
");
26     initComplex(mulA, mulB);
27     //复数乘法公式 z1=a+bi,z2=c+di,z1*z2=(ac-bd)+(bc+ad)i
28 }
29 void division(struct Complex complex1, struct Complex complex2) {
30     double diviA = (complex1.a * complex2.a + complex1.b * complex2.b) / (pow(complex2.a, 2.0) + pow(complex2.b, 2.0));
31     double diviB = (complex1.b * complex2.a - complex1.a * complex2.b) / (pow(complex2.a, 2.0) + pow(complex2.b, 2.0));
32     printf("两复数的商是:
");
33     initComplex(diviA, diviB);
34     //复数乘法公式 z1=a+bi,z2=c+di,z1/z2=(ac+bd)/(c^2+d^2)+( (bc-ad)/(c^2+d^2) )i
35 }
36 void main() {
37     struct Complex complex1;
38     struct Complex complex2;
39     //complex1.a = 1;
40     //complex1.b = 2;
41     printf("请输入第一个复数的实部:
");
42     scanf("%lf", &complex1.a);
43     printf("请输入第一个复数的虚部:
");
44     scanf("%lf", &complex1.b);
45     printf("得到第一个复数:");
46     initComplex(complex1.a, complex1.b);
47 
48     printf("请输入第二个复数的实部:
");
49     scanf("%lf", &complex2.a);
50     printf("请输入第二个复数的虚部:
");
51     scanf("%lf", &complex2.b);
52     printf("得到第二个复数:");
53     initComplex(complex2.a, complex2.b);
54 
55     add(complex1, complex2);
56     minus(complex1, complex2);
57     multiply(complex1, complex2);
58     division(complex1, complex2);
59 }

原文地址:https://www.cnblogs.com/shanlu0000/p/12416765.html