forked from ALX-SE-Algorithmia/Demo-Project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
implemented the calculator functions
- Loading branch information
1 parent
6b8d2b0
commit b44fb49
Showing
6 changed files
with
169 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Calculator Project | ||
|
||
## Project Description | ||
|
||
The calculator program allows user to perform arithmetic operations by entering two numbers and an arithmetic operator. |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#ifndef CALC_H | ||
#define CALC_H | ||
|
||
#include <stdio.h> | ||
#include <string.h> | ||
#include <stdlib.h> | ||
#include <stdbool.h> | ||
|
||
int handle_calc(int first_number, int second_number, char *operator); | ||
|
||
int sum(int first_number, int second_number); | ||
int minus(int first_number, int second_number); | ||
int multiply(int first_number, int second_number); | ||
int divide(int first_number, int second_number); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#include "calc.h" | ||
|
||
/** | ||
* sum - adds two numbers | ||
* | ||
* @first_number: first number | ||
* @second_number: second_number | ||
*/ | ||
|
||
int sum(int first_number, int second_number) | ||
{ | ||
return (first_number + second_number); | ||
} | ||
|
||
/** | ||
* minus - difference between two numbers | ||
* | ||
* @first_number: first number | ||
* @second_number: second_number | ||
*/ | ||
|
||
int minus(int first_number, int second_number) | ||
{ | ||
return (first_number - second_number); | ||
} | ||
|
||
/** | ||
* multiply - product of two numbers | ||
* | ||
* @first_number: first number | ||
* @second_number: second_number | ||
*/ | ||
|
||
int multiply(int first_number, int second_number) | ||
{ | ||
return (first_number * second_number); | ||
} | ||
|
||
/** | ||
* divide - division between two numbers | ||
* | ||
* @first_number: first number | ||
* @second_number: second_number | ||
*/ | ||
|
||
int divide(int first_number, int second_number) | ||
{ | ||
if (second_number == 0) | ||
{ | ||
printf("Error: Division by zero\n"); | ||
return (0); | ||
} | ||
|
||
return (first_number / second_number); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#include "calc.h" | ||
|
||
/** | ||
* handle_calc - handles the calculation | ||
* | ||
* Return: solution | ||
*/ | ||
|
||
int handle_calc(int first_number, int second_number, char *operator) | ||
{ | ||
int soln; | ||
|
||
if (strcmp(operator, "+") == 0) | ||
soln = sum(first_number, second_number); | ||
else if (strcmp(operator, "-") == 0) | ||
soln = minus(first_number, second_number); | ||
else if (strcmp(operator, "*") == 0) | ||
soln = multiply(first_number, second_number); | ||
else if (strcmp(operator, "/") == 0) | ||
soln = divide(first_number, second_number); | ||
else | ||
{ | ||
printf("operator not found\n"); | ||
return (-1); | ||
} | ||
|
||
return (soln); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
#include "calc.h" | ||
|
||
/** | ||
* main - program start point | ||
* | ||
* Return: 0; | ||
*/ | ||
|
||
int main() | ||
{ | ||
int first_number, second_number, result; | ||
char operator[2]; | ||
|
||
setbuf(stdout, NULL); | ||
|
||
printf("======================Calculator======================\n"); | ||
|
||
printf("This calculator can carry out the following functionalities: \nAddition\nSubtraction\nMultiplication\nDivision\n"); | ||
|
||
printf("Enter the numbers and operators below\n"); | ||
|
||
while (true) | ||
{ | ||
printf("Enter the first number: "); | ||
scanf("%d", &first_number); | ||
|
||
if (first_number != 0) | ||
{ | ||
break; | ||
} | ||
|
||
printf("Please enter a valid number.\n"); | ||
} | ||
|
||
while (true) | ||
{ | ||
printf("Enter the second number: "); | ||
scanf("%d", &second_number); | ||
|
||
if (second_number != 0) | ||
{ | ||
break; | ||
} | ||
|
||
printf("Please enter a valid number.\n"); | ||
} | ||
|
||
while (true) | ||
{ | ||
printf("Enter the operator: "); | ||
scanf("%1s", &operator); | ||
|
||
if (handle_calc) | ||
{ | ||
break; | ||
} | ||
|
||
printf("Please enter a valid operator.\n"); | ||
} | ||
|
||
result = handle_calc(first_number, second_number, operator); | ||
|
||
printf("Result: %d", result); | ||
return (0); | ||
} |