#include double atof(); main(argc, argv) int argc; char *argv[]; { char tmp[200]; double yr_input =0; double interest = 0; double balance = 0; double int_paid = 0; double per_intr = 0; double sum_intr = 0; double totintr = 0; int length = 0; int nmperiod = 1; int i =0; int j = 0; if ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P'))) { fprintf(stdout,"Enter initial investment <$>..................... "); fgets(tmp,100,stdin); yr_input = atof(tmp); fprintf(stdout,"Enter interest rate <%%>.......................... "); fgets(tmp,100,stdin); interest = atof(tmp) / 100; fprintf(stdout,"Enter length of investment ............... "); fgets(tmp,100,stdin); length = atoi(tmp); fprintf(stdout,"Enter number of compounding periods ... "); fgets(tmp,100,stdin); nmperiod = atoi(tmp); fprintf(stdout,"\n"); } else if ((argc == 2) && ((argv[1][0] == 'v') || (argv[1][0] == 'V'))) { fprintf(stdout,"compound: Version 1.00 \n"); fprintf(stdout," Copyright 1987 by Michael Brochstein\n"); fprintf(stdout," All rights reserved.\n"); } else if ((argc != 4) && (argc != 5)) { fprintf(stderr,"Usage: compound p \n"); fprintf(stderr," compound v \n"); fprintf(stderr," compound "); fprintf(stderr,"\n \n"); fprintf(stderr," compound "); fprintf(stderr,"\n "); fprintf(stderr," \n"); } else if ((argc == 4) || (argc == 5)) { yr_input = atof(argv[1]); interest = atof(argv[2]) / 100; length = atoi(argv[3]); if (argc == 5) { nmperiod = atoi(argv[4]); } } if ((argc == 4) || (argc == 5) || ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P')))) { if (nmperiod <= 0) { fprintf(stderr,"compound: Number of compounding "); fprintf(stderr,"periods must be >= 1; using 1\n\n"); nmperiod = 1; } per_intr = (1.0 / nmperiod) * interest; balance = yr_input; for (i = 1; i <= length; ++i) { int_paid = 0; sum_intr = 0; for (j = 1; j <= nmperiod; ++j) { int_paid = (per_intr * balance); sum_intr = sum_intr + int_paid; balance = int_paid + balance; } totintr = totintr + sum_intr; } fprintf(stdout,"Total interest paid...... %14.2f\n",totintr); fprintf(stdout,"Ending balance........... %14.2f\n",balance); } }