0% found this document useful (0 votes)
8 views13 pages

2.Calculator

The document contains a C program for a scientific calculator with various mathematical functions including addition, subtraction, multiplication, division, trigonometric functions, logarithms, and more. It features a menu-driven interface allowing users to select operations and input values, with error handling for invalid inputs. The program also includes advanced functionalities such as memory storage, conversion between degrees and radians, and the use of mathematical constants like π and e.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views13 pages

2.Calculator

The document contains a C program for a scientific calculator with various mathematical functions including addition, subtraction, multiplication, division, trigonometric functions, logarithms, and more. It features a menu-driven interface allowing users to select operations and input values, with error handling for invalid inputs. The program also includes advanced functionalities such as memory storage, conversion between degrees and radians, and the use of mathematical constants like π and e.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

#include <stdio.

h>

#include <math.h>

void display_menu() {

printf("----- Scientific Calculator -----\n");

printf("1. Addition (+)\n");

printf("2. Subtraction (-)\n");

printf("3. Multiplication (*)\n");

printf("4. Division (/)\n");

printf("5. Sine (sin)\n");

printf("6. Cosine (cos)\n");

printf("7. Tangent (tan)\n");

printf("8. Logarithm (log)\n");

printf("9. Power (pow)\n");

printf("10. Square Root (sqrt)\n");

printf("11. Factorial (!)\n");

printf("12. Absolute Value (|x|)\n");

printf("13. Exit\n");

printf("---------------------------------\n");

double add(double a, double b) {

return a + b;

}
double subtract(double a, double b) {

return a - b;

double multiply(double a, double b) {

return a * b;

double divide(double a, double b) {

if (b == 0) {

printf("Error: Division by zero!\n");

return 0;

return a / b;

double calculate_factorial(int n) {

if (n < 0) return -1; // Error for negative numbers

double fact = 1;

for (int i = 1; i <= n; i++) {

fact *= i;

return fact;

}
int main() {

int choice;

double num1, num2, result;

while (1) {

display_menu();

printf("Enter your choice: ");

scanf("%d", &choice);

switch (choice) {

case 1: // Addition

printf("Enter two numbers: ");

scanf("%lf %lf", &num1, &num2);

result = add(num1, num2);

printf("Result: %.2lf\n", result);

break;

case 2: // Subtraction

printf("Enter two numbers: ");

scanf("%lf %lf", &num1, &num2);

result = subtract(num1, num2);

printf("Result: %.2lf\n", result);

break;

case 3: // Multiplication

printf("Enter two numbers: ");

scanf("%lf %lf", &num1, &num2);


result = multiply(num1, num2);

printf("Result: %.2lf\n", result);

break;

case 4: // Division

printf("Enter two numbers: ");

scanf("%lf %lf", &num1, &num2);

result = divide(num1, num2);

if (num2 != 0) printf("Result: %.2lf\n", result);

break;

case 5: // Sine

printf("Enter an angle in radians: ");

scanf("%lf", &num1);

result = sin(num1);

printf("Result: %.2lf\n", result);

break;

case 6: // Cosine

printf("Enter an angle in radians: ");

scanf("%lf", &num1);

result = cos(num1);

printf("Result: %.2lf\n", result);

break;

case 7: // Tangent

printf("Enter an angle in radians: ");

scanf("%lf", &num1);

result = tan(num1);
printf("Result: %.2lf\n", result);

break;

case 8: // Logarithm

printf("Enter a number: ");

scanf("%lf", &num1);

if (num1 > 0) {

result = log(num1);

printf("Result: %.2lf\n", result);

} else {

printf("Error: Logarithm of non-positive number!\n");

break;

case 9: // Power

printf("Enter base and exponent: ");

scanf("%lf %lf", &num1, &num2);

result = pow(num1, num2);

printf("Result: %.2lf\n", result);

break;

case 10: // Square Root

printf("Enter a number: ");

scanf("%lf", &num1);

if (num1 >= 0) {

result = sqrt(num1);

printf("Result: %.2lf\n", result);

} else {
printf("Error: Square root of negative number!\n");

break;

case 11: // Factorial

printf("Enter a positive integer: ");

int n;

scanf("%d", &n);

result = calculate_factorial(n);

if (result != -1) printf("Result: %.0lf\n", result);

else printf("Error: Factorial of negative number not defined!\n");

break;

case 12: // Absolute Value

printf("Enter a number: ");

scanf("%lf", &num1);

result = fabs(num1);

printf("Result: %.2lf\n", result);

break;

case 13: // Exit

printf("Exiting the calculator.\n");

return 0;

default:

printf("Invalid choice! Please try again.\n");

return 0;
}

Calculator with bit more functions

#include <stdio.h>

#include <math.h>

#define PI 3.14159265358979323846

#define E 2.71828182845904523536

double memory = 0.0;

void display_menu() {

printf("----- Scientific Calculator -----\n");

printf("1. Addition (+)\n");

printf("2. Subtraction (-)\n");

printf("3. Multiplication (*)\n");

printf("4. Division (/)\n");

printf("5. Sine (sin)\n");

printf("6. Cosine (cos)\n");

printf("7. Tangent (tan)\n");

printf("8. Inverse Sine (asin)\n");

printf("9. Inverse Cosine (acos)\n");

printf("10. Inverse Tangent (atan)\n");

printf("11. Hyperbolic Sine (sinh)\n");


printf("12. Hyperbolic Cosine (cosh)\n");

printf("13. Hyperbolic Tangent (tanh)\n");

printf("14. Logarithm (log)\n");

printf("15. Log10 (log10)\n");

printf("16. Power (pow)\n");

printf("17. Exponential (e^x)\n");

printf("18. Square Root (sqrt)\n");

printf("19. Factorial (!)\n");

printf("20. Absolute Value (|x|)\n");

printf("21. Modulus (%%)\n");

printf("22. Percent (%% of number)\n");

printf("23. Store in Memory\n");

printf("24. Recall from Memory\n");

printf("25. Clear Memory\n");

printf("26. Use Constant π\n");

printf("27. Use Constant e\n");

printf("28. Convert Degrees to Radians\n");

printf("29. Convert Radians to Degrees\n");

printf("30. Exit\n");

printf("---------------------------------\n");

double add(double a, double b) {

return a + b;

}
// Basic and Advanced Operations (code remains the same for add, subtract, etc.)

// Degrees to radians

double degrees_to_radians(double degrees) {

return degrees * (PI / 180.0);

// Radians to degrees

double radians_to_degrees(double radians) {

return radians * (180.0 / PI);

int main() {

int choice;

double num1, num2, result;

while (1) {

display_menu();

printf("Enter your choice: ");

scanf("%d", &choice);

switch (choice) {

case 5: // Sine (sin in radians)

printf("Enter an angle in radians: ");


scanf("%lf", &num1);

result = sin(num1);

printf("Result: %.2lf\n", result);

break;

case 8: // Inverse Sine (asin)

printf("Enter value: ");

scanf("%lf", &num1);

result = asin(num1);

printf("Result (in radians): %.2lf\n", result);

break;

case 11: // Hyperbolic Sine (sinh)

printf("Enter value: ");

scanf("%lf", &num1);

result = sinh(num1);

printf("Result: %.2lf\n", result);

break;

case 15: // Log10 (base 10 logarithm)

printf("Enter a number: ");

scanf("%lf", &num1);

if (num1 > 0) {

result = log10(num1);

printf("Result: %.2lf\n", result);

} else {

printf("Error: Logarithm of non-positive number!\n");

}
break;

case 17: // Exponential (e^x)

printf("Enter value: ");

scanf("%lf", &num1);

result = exp(num1);

printf("Result: %.2lf\n", result);

break;

case 21: // Modulus

printf("Enter two integers: ");

int a, b;

scanf("%d %d", &a, &b);

if (b != 0) {

printf("Result: %d\n", a % b);

} else {

printf("Error: Division by zero!\n");

break;

case 22: // Percentage

printf("Enter base number and percentage to find: ");

scanf("%lf %lf", &num1, &num2);

result = (num1 * num2) / 100;

printf("Result: %.2lf\n", result);

break;

case 23: // Store in Memory

printf("Enter number to store in memory: ");


scanf("%lf", &memory);

printf("Stored %.2lf in memory.\n", memory);

break;

case 24: // Recall from Memory

printf("Memory Recall: %.2lf\n", memory);

break;

case 25: // Clear Memory

memory = 0.0;

printf("Memory Cleared.\n");

break;

case 26: // Use Constant π

printf("π = %.10lf\n", PI);

break;

case 27: // Use Constant e

printf("e = %.10lf\n", E);

break;

case 28: // Degrees to Radians

printf("Enter degrees: ");

scanf("%lf", &num1);

result = degrees_to_radians(num1);

printf("Radians: %.5lf\n", result);

break;

case 29: // Radians to Degrees

printf("Enter radians: ");

scanf("%lf", &num1);
result = radians_to_degrees(num1);

printf("Degrees: %.5lf\n", result);

break;

case 30: // Exit

printf("Exiting the calculator.\n");

return 0;

default:

printf("Invalid choice! Please try again.\n");

return 0;

You might also like