forked from CPRO-Session1/Assignment6
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomplex.c
More file actions
106 lines (92 loc) · 2.78 KB
/
complex.c
File metadata and controls
106 lines (92 loc) · 2.78 KB
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
/* Matthew Danielson
* 7/6/16
* complex.c
* Complex number calculator using structures with a user
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int coefficient;
int c;
} imag;
imag add(imag, imag);
imag sub(imag, imag);
imag mul(imag, imag);
imag divi(imag, imag);
int main(){
printf("Welcome to the Complex Number Calculator!");
int input;
char throwaway;
int coefficient;
int c;
imag expressions[3];
int count;
while(1){
count = 0;
printf("\nEnter 1 to add, 2 to subtract, 3 to multiply, 4 to divide, and 5 to exit");
scanf("%d", &input);
scanf("%c", &throwaway);
if(input != 5){
while(count <2){
printf("\nPlease the coefficient: ");
scanf("%d", &coefficient);
scanf("%c", &throwaway);
printf("\nPlease enter the extra term: ");
scanf("%d", &c);
scanf("%c", &throwaway);
expressions[count].coefficient = coefficient;
expressions[count].c = c;
count++;
}
}
if(input == 1){
expressions[2] = add(expressions[0], expressions[1]);
printf("\nResult: %di + %d", expressions[2].coefficient,expressions[2].c);
}
if(input == 2){
expressions[2] = sub(expressions[0], expressions[1]);
printf("\nResult: %di + %d", expressions[2].coefficient, expressions[2].c);
}
if(input == 3){
expressions[2] = mul(expressions[0], expressions[1]);
printf("\nResult: %di + %d", expressions[2].coefficient,expressions[2].c);
}
if(input == 4){
expressions[2] = add(expressions[0], expressions[1]);
printf("\nResult: %di + %d", expressions[2].coefficient, expressions[2].c);
}
if(input == 5){
printf("\nThank you for using the calculator\n");
exit(0);
}
}
}
imag add(imag expression1, imag expression2){
imag expression3;
expression3.coefficient = (expression1.coefficient + expression2.coefficient);
expression3.c = (expression1.c + expression2.c);
return expression3;
}
imag sub(imag expression1, imag expression2){
imag expression3;
expression3.coefficient = (expression1.coefficient - expression2.coefficient);
expression3.c =(expression1.c - expression2.c);
return expression3;
}
imag mul(imag expression1, imag expression2){
imag expression3;
expression3.c = ((expression1.c * expression2.c) -(expression1.coefficient * expression2.coefficient));
expression3.coefficient = ((expression1.coefficient * expression2.c ) + (expression2.coefficient * expression1.c));
return expression3;
}
imag divi(imag expression1, imag expression2){
imag expression3;
imag temp;
temp.coefficient = expression2.coefficient;
temp.c = -(expression2.c);
imag temp2 = mul(expression1, temp);
imag temp3 = mul(expression2, temp);
expression3.coefficient = (temp2.coefficient / temp3.coefficient);
expression3.c = (temp2.c / temp3.c);
return expression3;
}