I am new to C and am attempting to create a program to find the compound interest of a bank account.
I am using three functions with pointers, one to get data, one for calculations, and one for printing the data into a table. I am assuming that my confusion with pointers is causing the calculated values to print incorrectly in the table.
As it stands I am not receiving any errors, but a number of warnings about my pointers "default to int".
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//Function declarations
void GETDATA(double* StartAmnt, float* IntrRate, int* NumYears, int* StartYear);
void Mathemagic (double StartAmnt, float IntrRate, int NumYears, int StartYear,
float* IntrEarned, float* PercentGained,long double* FutureValue,
int* FutureYear);
void PRINTTABLE (double StartAmnt, float IntrRate, int NumYears, int StartYear,
float IntrEarned, float PercentGained,long double FutureValue,
int FutureYear);
int main(void)
{
//Local Declarations
double StartAmnt;
float IntrRate;
float IntrEarned;
float PercentGained;
long double FutureValue;
int NumYears;
int StartYear;
int FutureYear;
//Statements
GETDATA (&StartAmnt, &IntrRate, &StartYear, &NumYears);
Mathemagic (StartAmnt, IntrRate, StartYear, NumYears, &IntrEarned,
&PercentGained, &FutureValue, &FutureYear);
PRINTTABLE (StartAmnt, IntrRate, NumYears, StartYear, IntrEarned,
PercentGained, FutureValue, FutureYear);
return 0;
}//main
void GETDATA(double* StartAmnt, float* IntrRate, int* NumYears, int* StartYear)
{
//Statements
printf("COP 2220-51014 Project 2: Michael Walt\n\n");
printf("Enter a Starting amount (dollars and cents): ");
scanf("%lf", StartAmnt);
printf("Enter an Interest rate (ex. 2.5 for 2.5%): ");
scanf("%f", IntrRate);
printf("Enter the Number of years (integer number): ");
scanf("%d", NumYears);
printf("Enter the Starting year (four digits): ");
scanf("%d", StartYear);
return;
}//GETDATA
void Mathemagic (double StartAmnt, float IntrRate, int NumYears, int StartYear,
float* IntrEarned, float* PercentGained,long double* FutureValue,
int* FutureYear)
{
//Statements
*FutureValue = StartAmnt*pow((1+(IntrRate/100)),NumYears);
*PercentGained =((*FutureValue - StartAmnt)/StartAmnt)*100;
*IntrEarned = (*FutureValue-StartAmnt);
*FutureYear = (StartYear+NumYears);
return;
}//Mathemagic
PRINTTABLE(StartAmnt, IntrRate, NumYears, StartYear, IntrEarned,
PercentGained, FutureValue, FutureYear)
{
printf("\n+-----------------------------+--------------+\n");
printf("| Description | Input Data |\n");
printf("|-----------------------------+--------------|\n");
printf("| Starting amount | $ %.2f |\n", StartAmnt);
printf("| Interest rate | %f%% |\n", IntrRate);
printf("| Number of Years | %d |\n", NumYears);
printf("| Starting year | %d |\n", StartYear);
printf("+-----------------------------+--------------+\n");
printf("| Future value | Results |\n");
printf("|-----------------------------+--------------|\n");
printf("| In %d the balance will be | $ %f |\n", FutureYear, FutureValue);
printf("| Interest earned | $ %f |\n", IntrEarned);
printf("| Total percent gained | %f%% |\n", PercentGained);
printf("+-----------------------------+--------------+\n");
return;
}