#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

double apprec(double p, double r, int t)
{
	r += 1;
	return (p * pow(r, t));
}

double apprec_ml(double p, double r, int t, int n)
{
	return apprec(p, r/n, t*n);
}

int main(int argc, char *argv[])
{
	double rate = 0.0, principle=0.0, final;
	int times=0, period=0, i=1;
	if(argc<4) {
		printf("usage: interest -p <principle> -r <rate> -t <period of time> [-n <times per period>]\n");
		return 0;
	}
	do {
		if(strcmp(argv[i], "-p")==0) {
			principle = atof(argv[++i]);
		} else if(strcmp(argv[i], "-t")==0) {
			period = atoi(argv[++i]);
		} else if(strcmp(argv[i], "-r")==0) {
			rate = atof(argv[++i]);
		} else if(strcmp(argv[i], "-n")==0) {
			times = atoi(argv[++i]);
		} else {
			printf("%s is an unrecognized argument.\n",argv[i]);
		}
	} while(argv[++i]);
	if( (principle==0.0) || (rate==0.0) || (period==0) ) {
		printf("principle, rate, and period of time are required arguments.\n");
		return 1;
	}
	if(times==0) {
		final = apprec(principle, rate, period);
	} else {
		final = apprec_ml(principle, rate, period, times);
	}
	printf("The cumulative interest for the values you entered is $%.2lf\n",final);
	return 0;
}
