-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathComplexAlgebra.c
109 lines (93 loc) · 2.55 KB
/
ComplexAlgebra.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <stdio.h>
#include <string.h>
#include <math.h>
struct number
{
float real;
float imaginary;
} c1, c2;
void addition(struct number c1, struct number c2)
{
printf("%0.2f + %0.2fi\n", c1.real + c2.real, c1.imaginary + c2.imaginary);
}
void subtraction(struct number c1, struct number c2)
{
printf("%0.2f + %0.2fi\n", c1.real - c2.real, c1.imaginary - c2.imaginary);
}
void product(struct number c1, struct number c2)
{
printf("%0.2f + %0.2fi\n", (c1.real * c2.real) - (c1.imaginary * c2.imaginary), (c2.real * c1.imaginary + c1.real * c2.imaginary));
}
void division(struct number c1, struct number c2)
{
printf("%0.2f + %0.2fi\n", (((c1.real * c2.real) + (c1.imaginary * c2.imaginary)) / ((c2.imaginary * c2.imaginary) + (c2.real * c2.real))), (((c2.real * c1.imaginary) - (c1.real * c2.imaginary)) / ((c2.imaginary * c2.imaginary) + (c2.real * c2.real))));
}
void mag(struct number c1)
{
printf("%0.2f\n", sqrt((c1.real * c2.real) + (c1.imaginary * c2.imaginary)));
}
float mag2(struct number c1)
{
return (sqrt((c1.real * c1.real) + (c1.imaginary * c1.imaginary)));
}
void polar(struct number c1)
{
double a1 = asin((double)c1.imaginary / mag2(c1));
double a2 = acos((double)c1.real / mag2(c1));
printf("%0.2fcos(%0.4lf) + %0.2fsin(%0.4lf)i\n", mag2(c1), a1, mag2(c1), a2);
}
int main()
{
int q, w;
while (1)
{
printf("The real part and imaginary part of number1 : ");
scanf("%f%f", &c1.real, &c1.imaginary);
printf("The real part and imaginary part of number2 : ");
scanf("%f%f", &c2.real, &c2.imaginary);
printf("Enter 1 for Addition\n2 for Subtraction\n3 for Multiplication\n4 for Division\n5 for Magnitude\n6 for Polar form\n");
scanf("%d", &q);
if (q == 1)
{
addition(c1, c2);
}
if (q == 2)
{
subtraction(c1, c2);
}
if (q == 3)
{
product(c1, c2);
}
if (q == 4)
{
division(c1, c2);
}
if (q == 5)
{
printf("1 for c1 & 2 for c2 ");
scanf("%d", &w);
if (w == 1)
{
mag(c1);
}
if (w == 2)
{
mag(c2);
}
}
if (q == 6)
{
printf("1 for c1 & 2 for c2 ");
scanf("%d", &w);
if (w == 1)
{
polar(c1);
}
if (w == 2)
{
polar(c2);
}
}
}
}