#include <stdio.h>

double atof();

main(argc, argv)
int argc;
char *argv[];
{
char tmp[200];
int length = 0;
double cost = 0;
double salvage = 0;
double sln = 0;
double syd = 0;
double sumyears = 0;
double ddb = 0;
double ddbtotal = 0;
double sumsln = 0;
double sumsyd = 0;
double sumddb = 0;
int i =0;

if ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P')))
	{
	 fprintf(stdout,"Enter cost <$>................... ");
	 fgets(tmp,100,stdin);
	 cost = atof(tmp);
	 fprintf(stdout,"Enter salvage value <$>.......... ");
	 fgets(tmp,100,stdin);
	 salvage = atof(tmp);
	 fprintf(stdout,"Enter life <years>............... ");
	 fgets(tmp,100,stdin);
	 length = atoi(tmp);
	 fprintf(stdout,"\n");
	}
else if ((argc == 2) && ((argv[1][0] == 'v') || (argv[1][0] == 'V')))
	{
	 fprintf(stdout,"deprec: 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: deprec p \n");
	 fprintf(stderr,"       deprec v \n");
	 fprintf(stderr,"       deprec <cost> <salvage value> ");
	 fprintf(stderr,"<life (years)>\n");
	}
else if (argc == 4)
	{
	 cost = atof(argv[1]);
	 salvage = atof(argv[2]);
	 length = atoi(argv[3]);
	}
if ((argc == 4)
	|| ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P'))))
	{
	 fprintf(stdout,"                       Double-Declining   ");
	 fprintf(stdout,"Sum-of-the-years\n");
	 fprintf(stdout,"Year   Straight Line        Balance        ");
	 fprintf(stdout,"    Digits    \n");
	 fprintf(stdout,"----   -------------   ----------------   ");
	 fprintf(stdout,"----------------\n");

	 sln = (cost - salvage) / length;
	
	 ddbtotal = cost;

	 for (i = 0; i <= length; ++i)
		{
		 sumyears += i;
		}

	 for (i = 1; i <= length; ++i)
		{
		 ddb = 2 * ddbtotal / length;
		 if (((ddbtotal - salvage) > 0) && (ddb > (ddbtotal - salvage)))
			{
			 ddb = ddbtotal - salvage;
			 ddbtotal = 0;
			}
		 else if (ddb > 0)
			{
		 	 ddbtotal -= ddb;
			}

		 syd = ((length - i + 1) / sumyears) * (cost - salvage);

	 	 sumsln += sln;
		 sumddb += ddb;
		 sumsyd += syd;

		 fprintf(stdout,"%3d   %13.2f   %16.2f  %17.2f\n",
			i,sln,ddb,syd);
		}
	 fprintf(stdout,"----   -------------   ----------------   ");
	 fprintf(stdout,"----------------\n");
	 fprintf(stdout,"TOTAL: %12.2f   %16.2f  %17.2f\n",
		sumsln,sumddb,sumsyd);
	}
}
