-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculator.c
129 lines (112 loc) · 3.77 KB
/
calculator.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
Welcome to the Basic Calculator Developer Preview
Date of Birth:
14 May 2023 11.10 AM IST
Story of Creation:
Here you can edit the code as you want || you can correct my mistakes and improve this code on GitHub
<<<<<<<<<<<<<<<<<<<<<<<< This complete code is made by Sombit Pramanik && maintained by the GitHub Programmers || Contributors >>>>>>>>>>>>>>>>>>>>>>>>>>>
Thanks for contributing and improving this program.
Happy Contribution :)
About:
This is not the best calculator, but this calculator is made for showing the power and the beauty of modular programming approach.
In this program, the user can easily give two floating-point numbers and what type of calculation he/she wants to do.
We use a while loop for continuous operation && simple if-else statements for conditional operation and also to keep it beginner-friendly.
For more info read the code :)
Re-Compilation :
write on your ternminal (cc*) calculator.c -o calculator.out -lm [(*for other compiler see the compiler refarence)]
*/
#include <stdio.h>
#include <math.h>
// Declaration of all user-defined functions
void add(float, float);
void subtract(float, float);
void multiply(float, float);
void divide(float, float);
void power(float, float);
void square_root(float);
// Main body of the program
int main(){
char op;
float a, b;
int continue_calculating = 1;
while (continue_calculating == 1) {
printf("Welcome to the Calculator made in C by Sombit Pramanik\nEnter A : ");
scanf("%f", &a);
printf("Enter B : ");
scanf("%f", &b);
printf("Calculator supports the following operations: (+, -, *, /, ^, For Square root use : s)\nType 'q' to quit the program\nWhat operation do you want to perform : ");
scanf(" %c", &op);
if (op == 'q' || op == 'Q') {
printf("Exiting program...\n");
break;
}
else if (op == '+') {
add(a, b);
}
else if (op == '-') {
subtract(a, b);
}
else if (op == '*') {
multiply(a, b);
}
else if (op == '/') {
divide(a, b);
}
else if (op == '^') {
power(a, b);
}
else if (op == 's' || op == 'S') {
square_root(a);
square_root(b);
}
else {
printf("Invalid input: '%c'. Please enter a valid operator.\n", op);
}
// Ask if the user wants to calculate more
char choice;
printf("Do you want to perform another calculation? (y/n): ");
scanf(" %c", &choice);
if (choice == 'y') {
continue_calculating = 1;
}
else {
continue_calculating = 0;
printf("Exiting program...\n");
}
}
return 0;
}
// Definition of all user-defined functions
void add(float a, float b) {
float result = a + b;
printf("The sum of %.2f and %.2f is: %.2f\n", a, b, result);
}
void subtract(float a, float b) {
float result = a - b;
printf("The difference between %.2f and %.2f is: %.2f\n", a, b, result);
}
void multiply(float a, float b) {
float result = a * b;
printf("The product of %.2f and %.2f is: %.2f\n", a, b, result);
}
void divide(float a, float b) {
if (b == 0) {
printf("Error: Division by zero.\n");
} else {
float result = a / b;
printf("The quotient of %.2f divided by %.2f is: %.2f\n", a, b, result);
}
}
void power(float a, float b) {
float result = pow(a, b);
printf("%.2f raised to the power of %.2f is: %.2f\n", a, b, result);
}
void square_root(float a) {
if (a < 0) {
printf("Error: Square root of a negative number.\n");
} else {
float result = sqrt(a);
printf("The square root of %.2f is: %.2f\n", a, result);
}
}
// End of the program