I have made a calculator for my homework, but am having a few problems.
Here is what I have in main.c:
Code:
/************************************************************
Filename: main.c
Author: Mike Hartwig([email protected])
Input: Keyboard
Output: Monitor
*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "functions.h"
int main()
{
int menu_choice;
int data1 = 0;
int data2 = 0;
int answer = 0;
char sign = '_';
char pcsign = '%';
while (menu_choice < 8)
{
printf("\n*************Calculator*************\n");
printf("Data 1: %d\n", data1);
printf("Data 2: %d\n", data2);
printf("Operator: %c\n", sign);
printf("Results: %d\n", answer);
printf("************************************\n");
printf("1)Set Data 1 \n");
printf("2)Set Data 2 \n");
printf("3)Set Operator +\n");
printf("4)Set Operator -\n");
printf("5)Set Operator *\n");
printf("6)Set Operator /\n");
printf("7)Set Operator %c\n", pcsign);
printf("8)Set Operator pow\n");
printf("9)Set Operator exp\n");
printf("10)Set Operator sqrt\n");
printf("11)Set Operator sin\n");
printf("12)Quit");
printf("\n\nEnter Your Menu Choice: ");
scanf("%d", &menu_choice);
switch (menu_choice)
{
case 1:
{
printf("Enter Data 1: ");
scanf("%d", &data1);
break;
}
case 2:
{
printf("Enter Data 2: ");
scanf("%d", &data2);
break;
}
case 3:
{
answer = add(data1, data2);
sign = '+';
break;
}
case 4:
{
answer = sub(data1, data2);
sign = '-';
break;
}
case 5:
{
answer = mult(data1, data2);
sign = '*';
break;
}
case 6:
{
if (data1 == 0 || data2 == 0)
{
printf("\nCan't Divide By Zero\n");
}
else
{
answer = divide(data1, data2);
sign = '/';
}
break;
}
case 7:
{
if (data1 == 0 || data2 == 0)
{
printf("\nCan't Divide By Zero\n");
}
else
{
answer = pcent(data1, data2);
sign = '%';
}
break;
}
case 12:
{
return(0);
}
default:
{
printf("Invalid Menu Choice\n");
break;
}
}
}
return (0);
}
Here is what I have in functions.c
Code:
#include <stdio.h>
#include <stdlib.h>
#include "functions.h"
/*****************************************************
Function Name: add()
Purpose: Add data1 and data2
******************************************************/
int add(int data1, int data2)
{
int answer;
printf("\nCalculating...\n");
answer = data1 + data2;
return answer;
}
/*****************************************************
Function Name: sub()
Purpose: Subtracts data1 and data2
******************************************************/
int sub(int data1, int data2)
{
int answer;
printf("Calculating...\n");
answer = data1 - data2;
return answer;
}
/*****************************************************
Function Name: mult()
Purpose: Multiplies data1 and data2
******************************************************/
int mult(int data1, int data2)
{
int answer;
printf("\nCalculating...\n");
answer = data1 * data2;
return answer;
}
/*****************************************************
Function Name: div()
Purpose: Divides data1 and data2
******************************************************/
int divide(int data1, int data2)
{
int answer;
printf("\nCalculating...\n");
answer = data1 / data2;
return answer;
}
/*****************************************************
Function Name: pcent()
Purpose: Divides data1 and data2
******************************************************/
int pcent(int data1, int data2)
{
int answer;
printf("\nCalculating...\n");
answer = data1 % data2;
return answer;
}
The default function is supposed to be addition, but i am not exactly sure of how to do this. Also when the user enters in a new value intop one of the data varialbes, it is supposed to update the answer, but it doesnt. It only updates the answer if you set the operator again.