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.