C Program to Calculate Compound Interest

Formula to calculate compound interest

C programs to calculate compound interest have been shown here. Both of the iterative and recursive approaches have been covered. Compound interest can also be calculated using formula:


$CI = {\Large p*(1 + \frac{r}{n})^{nt} - p}$


Here $CI$ represents compound interest. Pricipal amount, interest rate, periodicity of payment and time in years have been represented by $p$, $r$, $n$ and $t$ respectively. As an example, If $p = 5000$, $r = 7.5$ , $n = 4$ and $t = 2$ then by using the above formula, we get the value of compound interest $CI = 801.11$.

 The following section covers the C programs to calculate compound interest along with algorithm, pseudocode and time complexity of the program.






1. Algorithm to calculate compound interest


1. Take input of Pricipal amount ($p$), interest rate ($r$), payment periodicity ($n$) and years ($t$)

2. Calculate compound interest using formula $CI = p*(1 + \frac{r}{n})^{nt} - p$

3. Return the computed value $CI$





2. Pseudocode to calculate compound interest


Input: Pricipal $p$, interest rate $r$, payment periodicity $n$, time in years $t$

Output: Compound interest $ci$

1. Procedure compoundInterest($p$, $r$, $n$, $t$):

2. $ci \leftarrow p*(1 + \frac{r}{n})^{nt} - p$

3. Return $ci$

4. End Procedure





3. Time complexity to calculate compound interest


Time Complexity: O(nt)

Here $t$ is the no. of years and $n$ is the payment periodicity.




4. C Program & output to calculate compound interest using formula

Code has been copied
/*******************************
    alphabetacoder.com
C program to calculate compound 
interest using formula
********************************/

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

int main() {
    // declare variables
    float ci, amount, p, r, t;
    int n;

    // take input of initial principal amount,
    // interest rate, periodicity of payment and year
    printf("Enter the principal balance = ");
    scanf("%f", & p);
    printf("Enter the annual interest rate = ");
    scanf("%f", & r);
    printf("Enter compound frequency / year = ");
    scanf("%d", & n);
    printf("Enter the year  = ");
    scanf("%f", & t);

    // calculate compounded value
    // using formula
    amount = p * pow((1 + r / (100 * n)), n * t);

    //find the compound interest
    ci = amount - p;

    // display result rounded up to two decimal places
    printf("Compound interest = %0.2f", ci);

    return 0;
}

Output


Enter the principal balance = 20000

Enter the annual interest rate = 8

Enter compound frequency / year = 4

Enter the year = 10

Compound interest = 24160.76




5. C Program & output to calculate compound interest using Iteration

Code has been copied
/*******************************
    alphabetacoder.com
C program to calculate compound 
interest using Iteration
*********************************/

#include <stdio.h>

int main() {
    // declare variables
    float ci, amount, p, r, t;
    int n, i;

    // take input of initial principal amount,
    // interest rate, periodicity of payment and year
    printf("Enter the principal balance = ");
    scanf("%f", & p);
    printf("Enter the annual interest rate = ");
    scanf("%f", & r);
    printf("Enter compound frequency / year = ");
    scanf("%d", & n);
    printf("Enter the year  = ");
    scanf("%f", & t);

    // initialize
    amount = p;

    // calculate compounded value using loop
    for (i = 0; i < n * t; i++)
        amount = amount + amount * (r / (n * 100));

    //find the compound interest
    ci = amount - p;

    // display result rounded up to two decimal places
    printf("Compound interest = %0.2f", ci);

    return 0;
}

Output


Enter the principal balance = 33000

Enter the annual interest rate = 8.25

Enter compound frequency / year = 2

Enter the year = 10

Compound interest = 41065.21




6. C Program & output to calculate compound interest using recursion

Code has been copied
/*******************************
    alphabetacoder.com
C program to calculate compound 
interest using recursion
********************************/

#include <stdio.h>

// recursive function to compute compound interest
float compound_interest(float p0, float p, float r, int n, int t, int itr) {
    // if number of total no of compound reached
    if (itr == n * t)
        return (p - p0);
    // calculate interest
    float interest = p * (r / (n * 100));

    // call function
    return compound_interest(p0, p + interest, r, n, t, itr + 1);
}

int main() {
    // declare variables
    float ci, p, r;
    int n, i, t;

    // take input of initial principal amount,
    // interest rate, periodicity of payment and year
    printf("Enter the principal balance = ");
    scanf("%f", & p);
    printf("Enter the annual interest rate = ");
    scanf("%f", & r);
    printf("Enter compound frequency / year = ");
    scanf("%d", & n);
    printf("Enter the year  = ");
    scanf("%d", & t);

    // call function to compute compound interest
    ci = compound_interest(p, p, r, n, t, 0);

    // display result rounded up to two decimal places
    printf("Compound interest = %0.2f", ci);

    return 0;
}

Output


Enter the principal balance = 33000

Enter the annual interest rate = 8.25

Enter compound frequency / year = 2

Enter the year = 10

Compound interest = 41065.21