#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 totinput = 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 yearly 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 opening balance............................ "); fgets(tmp,100,stdin); balance = atof(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,"ira2tbl: Version 1.00 \n"); fprintf(stdout," Copyright 1987 by Michael Brochstein\n"); fprintf(stdout," All rights reserved.\n"); } else if ((argc != 5) && (argc != 6)) { fprintf(stderr,"Usage: ira2tbl p \n"); fprintf(stderr," ira2tbl v \n"); fprintf(stderr," ira2tbl "); fprintf(stderr,"\n"); fprintf(stderr," \n"); fprintf(stderr," ira2tbl "); fprintf(stderr,"\n"); fprintf(stderr," \n"); } else if ((argc == 5) || (argc == 6)) { yr_input = atof(argv[1]); interest = atof(argv[2]) / 100; length = atoi(argv[3]); balance = atof(argv[4]); if (argc == 6) { nmperiod = atoi(argv[5]); } } if ((argc == 5) || (argc == 6) || ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P')))) { if (nmperiod <= 0) { fprintf(stderr,"ira2tbl: Number of compounding "); fprintf(stderr,"periods must be >= 1; using 1\n\n"); nmperiod = 1; } if (balance < 0) { fprintf(stderr,"ira2tbl: Opening balance "); fprintf(stderr,"must be >= 0; using 0\n\n"); balance = 0; } per_intr = (1.0 / nmperiod) * interest; fprintf(stdout,"Year Amount Invested Interest Paid "); fprintf(stdout,"Year End Balance\n"); fprintf(stdout,"---- --------------- ------------- "); fprintf(stdout,"----------------\n"); fprintf(stdout,"%4d %14.2f %14.2f %17.2f\n", i,yr_input,int_paid,balance + yr_input); for (i = 1; i <= length; ++i) { totinput = totinput + yr_input; int_paid = 0; sum_intr = 0; balance = balance + yr_input; 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,"%4d %14.2f %14.2f %17.2f\n", i,yr_input,sum_intr,balance); } fprintf(stdout,"---- --------------- ------------- "); fprintf(stdout,"----------------\n"); fprintf(stdout,"TOTAL: %14.2f %14.2f %17.2f\n", totinput, totintr, balance); } }