#include <stdio.h>
#include <math.h>

double atof();
double pow();

main(argc, argv)
int argc;
char *argv[];
{
char tmp[200];
double fvalue = 0;
double pvalue = 0;
double interest = 0;
double numper = 0;

if ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P')))
	{
	 fprintf(stdout,"Enter present value <$>.............. ");
	 fgets(tmp,100,stdin);
	 pvalue = atof(tmp);
	 fprintf(stdout,"Enter future value <$>............... ");
	 fgets(tmp,100,stdin);
	 fvalue = atof(tmp);
	 fprintf(stdout,"Enter number of periods.............. ");
	 fgets(tmp,100,stdin);
	 numper = atof(tmp);
	 fprintf(stdout,"\n");
	}
else if ((argc == 2) && ((argv[1][0] == 'v') || (argv[1][0] == 'V')))
	{
	 fprintf(stdout,"rate: Version 1.00 \n");
	 fprintf(stdout,"      Copyright 1987 by Michael Brochstein\n");
	 fprintf(stdout,"      All rights reserved.\n");
	}
else if (argc != 4) 
	{
	 fprintf(stderr,"Usage: rate p \n");
	 fprintf(stderr,"       rate v \n");
	 fprintf(stderr,"       rate <present value> <future value>");
	 fprintf(stderr," <number of periods>\n");
	}
else if (argc == 4)
	{
	 pvalue = atof(argv[1]);
	 fvalue = atof(argv[2]);
	 numper = atof(argv[3]);
	}

if ((argc == 4) 
	|| ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P'))))
	{
	 interest = pow((fvalue / pvalue),(1 / numper));
	 interest -= 1;
	 fprintf(stdout,"Interest rate per period...... %.3f %%\n",
		100 * interest);
	}
}
