Ulriche Nguefack
11 months ago
2 changed files with 226 additions and 239 deletions
@ -1,264 +1,251 @@ |
|||
#include <stdio.h> |
|||
#include <math.h> |
|||
|
|||
// Function prototypes |
|||
// Function prototypes |
|||
void displayMenu(); |
|||
double add(double num1, double num2); |
|||
double subtract(double num1, double num2); |
|||
double multiply(double num1, double num2); |
|||
double divide(double num1, double num2); |
|||
double exponent(double base, double exponent); |
|||
double modulus(double num1, double num2); |
|||
double logarithm(double num); |
|||
double potential(double base, double exponent); |
|||
double squareRoot(double num); |
|||
double square(double num); |
|||
double sine(double angle); |
|||
double cosine(double angle); |
|||
double tangent(double angle); |
|||
double performOperation(int choice, double num1, double num2); |
|||
double getDoubleInput(const char *message); |
|||
int getIntInput(const char *message); |
|||
double factorial(double num); |
|||
double permutation(int n, int r); |
|||
double combination(int n, int r); |
|||
double factorial(double num); |
|||
double power(double base, double exponent); |
|||
double cube(double num); |
|||
double cubeRoot(double num); |
|||
|
|||
int main() { |
|||
double num1, num2, result, angle; |
|||
int choice,r,n; |
|||
|
|||
do { |
|||
displayMenu(); |
|||
printf("Enter your choice: "); |
|||
scanf("%d", &choice); |
|||
switch (choice) { |
|||
case 1: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = add(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 2: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = subtract(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 3: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = multiply(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 4: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
if (num2 == 0) { |
|||
printf("Error: Division by zero\n"); |
|||
} else { |
|||
result = divide(num1, num2); |
|||
int main() { |
|||
double num1, num2, result, angle; |
|||
int choice,r,n; |
|||
|
|||
do { |
|||
displayMenu(); |
|||
printf("Enter your choice: "); |
|||
scanf("%d", &choice); |
|||
switch (choice) { |
|||
case 1: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = add(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 2: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = subtract(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 3: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = multiply(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 4: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
if (num2 == 0) { |
|||
printf("Error: Division by zero\n"); |
|||
} else { |
|||
result = divide(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
} |
|||
break; |
|||
case 5: |
|||
printf("Enter base and exponent: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = exponent(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 6: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = modulus(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 7: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = logarithm(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 8: |
|||
printf("Enter base and exponent: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = potential(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
} |
|||
break; |
|||
case 5: |
|||
printf("Enter base and exponent: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = exponent(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 6: |
|||
printf("Enter two numbers: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = modulus(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 7: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = logarithm(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 8: |
|||
printf("Enter base and exponent: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = potential(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 9: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = squareRoot(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 10: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = square(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 11: |
|||
printf("Enter angle in degrees: "); |
|||
scanf("%lf", &angle); |
|||
result = sine(angle); |
|||
printf("Sine of %.2lf degrees: %lf\n", angle, result); |
|||
break; |
|||
case 12: |
|||
printf("Enter angle in degrees: "); |
|||
scanf("%lf", &angle); |
|||
result = cosine(angle); |
|||
printf("Cosine of %.2lf degrees: %lf\n", angle, result); |
|||
break; |
|||
case 13: |
|||
printf("Enter angle in degrees: "); |
|||
scanf("%lf", &angle); |
|||
result = tangent(angle); |
|||
printf("Tangent of %.2lf degrees: %lf\n", angle, result); |
|||
break; |
|||
case 14: |
|||
printf("Enter n and r: "); |
|||
scanf("%d %d", &n, &r); |
|||
result = permutation(n, r); |
|||
printf("Permutation of %d and %d: %lf\n", n, r, result); |
|||
break; |
|||
case 15: |
|||
printf("Enter n and r: "); |
|||
scanf("%d %d", &n, &r); |
|||
result = combination(n, r); |
|||
printf("Combination of %d and %d: %lf\n", n, r, result); |
|||
break; |
|||
case 16: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = cube(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 17: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = cubeRoot(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 18: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = factorial(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 19: |
|||
printf("Enter base and exponent: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = power(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 20: |
|||
printf("Exiting...\n"); |
|||
break; |
|||
default: |
|||
printf("Invalid choice\n"); |
|||
break; |
|||
case 9: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = squareRoot(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 10: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = square(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 11: |
|||
printf("Enter angle in degrees: "); |
|||
scanf("%lf", &angle); |
|||
result = sine(angle); |
|||
printf("Sine of %.2lf degrees: %lf\n", angle, result); |
|||
break; |
|||
case 12: |
|||
printf("Enter angle in degrees: "); |
|||
scanf("%lf", &angle); |
|||
result = cosine(angle); |
|||
printf("Cosine of %.2lf degrees: %lf\n", angle, result); |
|||
break; |
|||
case 13: |
|||
printf("Enter angle in degrees: "); |
|||
scanf("%lf", &angle); |
|||
result = tangent(angle); |
|||
printf("Tangent of %.2lf degrees: %lf\n", angle, result); |
|||
break; |
|||
case 14: |
|||
printf("Enter n and r: "); |
|||
scanf("%d %d", &n, &r); |
|||
result = permutation(n, r); |
|||
printf("Permutation of %d and %d: %lf\n", n, r, result); |
|||
break; |
|||
case 15: |
|||
printf("Enter n and r: "); |
|||
scanf("%d %d", &n, &r); |
|||
result = combination(n, r); |
|||
printf("Combination of %d and %d: %lf\n", n, r, result); |
|||
break; |
|||
case 16: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = cube(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 17: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = cubeRoot(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 18: |
|||
printf("Enter a number: "); |
|||
scanf("%lf", &num1); |
|||
result = factorial(num1); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 19: |
|||
printf("Enter base and exponent: "); |
|||
scanf("%lf %lf", &num1, &num2); |
|||
result = power(num1, num2); |
|||
printf("Result: %lf\n", result); |
|||
break; |
|||
case 20: |
|||
printf("Exiting...\n"); |
|||
break; |
|||
default: |
|||
printf("Invalid choice\n"); |
|||
} |
|||
} |
|||
} |
|||
while (choice != 20); |
|||
while (choice != 20); |
|||
|
|||
return 0; |
|||
} |
|||
// Function definitions |
|||
void displayMenu() { |
|||
printf("\nAdvaced Calculator\n"); |
|||
printf("1. Add\n"); |
|||
printf("2. Subtract\n"); |
|||
printf("3. Multiply\n"); |
|||
printf("4. Divide\n"); |
|||
printf("5. Exponentiation\n"); |
|||
printf("6. Modulus\n"); |
|||
printf("7. Logarithm\n"); |
|||
printf("8. Potential\n"); |
|||
printf("9. Square Root\n"); |
|||
printf("10. Square\n"); |
|||
printf("11. Cube\n"); |
|||
printf("12. Cube Root\n"); |
|||
printf("13. Factorial\n"); |
|||
printf("14. Power\n"); |
|||
printf("15. Sine\n"); |
|||
printf("16. Cosine\n"); |
|||
printf("17. Tangent\n"); |
|||
printf("18. Permutation\n"); |
|||
printf("19. Combination\n"); |
|||
printf("20. Exit\n"); |
|||
} |
|||
double add(double num1, double num2) { |
|||
return num1 + num2; |
|||
} |
|||
return 0; |
|||
} |
|||
// Function definitions |
|||
void displayMenu() { |
|||
printf("\nAdvaced Calculator\n"); |
|||
printf("1. Add\n"); |
|||
printf("2. Subtract\n"); |
|||
printf("3. Multiply\n"); |
|||
printf("4. Divide\n"); |
|||
printf("5. Exponentiation\n"); |
|||
printf("6. Modulus\n"); |
|||
printf("7. Logarithm\n"); |
|||
printf("8. Potential\n"); |
|||
printf("9. Square Root\n"); |
|||
printf("10. Square\n"); |
|||
printf("11. Cube\n"); |
|||
printf("12. Cube Root\n"); |
|||
printf("13. Factorial\n"); |
|||
printf("14. Power\n"); |
|||
printf("15. Sine\n"); |
|||
printf("16. Cosine\n"); |
|||
printf("17. Tangent\n"); |
|||
printf("18. Permutation\n"); |
|||
printf("19. Combination\n"); |
|||
printf("20. Exit\n"); |
|||
} |
|||
double add(double num1, double num2) { |
|||
return num1 + num2; |
|||
} |
|||
|
|||
double subtract(double num1, double num2) { |
|||
return num1 - num2; |
|||
} |
|||
double multiply(double num1, double num2) { |
|||
return num1 * num2; |
|||
} |
|||
double divide(double num1, double num2) { |
|||
return num1 / num2; |
|||
} |
|||
double subtract(double num1, double num2) { |
|||
return num1 - num2; |
|||
} |
|||
double multiply(double num1, double num2) { |
|||
return num1 * num2; |
|||
} |
|||
double divide(double num1, double num2) { |
|||
return num1 / num2; |
|||
} |
|||
|
|||
double exponent(double base, double exponent) { |
|||
return pow(base, exponent); |
|||
} |
|||
double exponent(double base, double exponent) { |
|||
return pow(base, exponent); |
|||
} |
|||
|
|||
double modulus(double num1, double num2) { |
|||
return fmod(num1, num2); |
|||
} |
|||
double modulus(double num1, double num2) { |
|||
return fmod(num1, num2); |
|||
} |
|||
|
|||
double logarithm(double num) { |
|||
return log(num); |
|||
} |
|||
double logarithm(double num) { |
|||
return log(num); |
|||
} |
|||
|
|||
double potential(double base, double exponent) { |
|||
return pow(base, exponent); |
|||
} |
|||
double squareRoot(double num) { |
|||
return sqrt(num); |
|||
} |
|||
double potential(double base, double exponent) { |
|||
return pow(base, exponent); |
|||
} |
|||
double squareRoot(double num) { |
|||
return sqrt(num); |
|||
} |
|||
|
|||
double square(double num) { |
|||
return num * num; |
|||
} |
|||
double square(double num) { |
|||
return num * num; |
|||
} |
|||
|
|||
double cube(double num) { |
|||
return num * num * num; |
|||
} |
|||
double cube(double num) { |
|||
return num * num * num; |
|||
} |
|||
|
|||
double cubeRoot(double num) { |
|||
return cbrt(num); |
|||
}double factorial(double num) { |
|||
if (num == 0) { |
|||
return 1; |
|||
} else { |
|||
return num * factorial(num - 1); |
|||
double cubeRoot(double num) { |
|||
return cbrt(num); |
|||
}double factorial(double num) { |
|||
if (num == 0) { |
|||
return 1; |
|||
} else { |
|||
return num * factorial(num - 1); |
|||
} |
|||
} |
|||
} |
|||
|
|||
double power(double base, double exponent) { |
|||
return pow(base, exponent); |
|||
} |
|||
double power(double base, double exponent) { |
|||
return pow(base, exponent); |
|||
} |
|||
|
|||
double sine(double angle) { |
|||
return sin(angle * M_PI / 180.0); |
|||
} |
|||
double sine(double angle) { |
|||
return sin(angle * M_PI / 180.0); |
|||
} |
|||
|
|||
double cosine(double angle) { |
|||
return cos(angle * M_PI / 180.0); |
|||
} |
|||
double cosine(double angle) { |
|||
return cos(angle * M_PI / 180.0); |
|||
} |
|||
|
|||
double tangent(double angle) { |
|||
return tan(angle * M_PI / 180.0); |
|||
} |
|||
double permutation(int n, int r) { |
|||
int result = 1; |
|||
for (int i = 0; i < r; i++) { |
|||
result *= (n - i); |
|||
double tangent(double angle) { |
|||
return tan(angle * M_PI / 180.0); |
|||
} |
|||
double permutation(int n, int r) { |
|||
int result = 1; |
|||
for (int i = 0; i < r; i++) { |
|||
result *= (n - i); |
|||
} |
|||
return result; |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
double combination(int n, int r) { |
|||
return permutation(n, r) / factorial(r); |
|||
} |
|||
double combination(int n, int r) { |
|||
return permutation(n, r) / factorial(r); |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue