2016-08-03 84 views
0

意圖:該程序向用戶詢問當前在其銀行賬戶中的金額,APR和年數。輸出是顯示用戶指定年份累計利息的金額的開始和結束。C程序:計算利息

問題:我試圖找到一種方法來正確添加利息,因爲現在的指定年數我正在做的是乘以(當前銀行賬戶的金額*利率*年)我知道這是不對的,我覺得我需要積累利率循環從一年到下一個,這就是我需要help.Thanks這裏是下面我當前的代碼...


代碼

#include <stdio.h> 
#include <stdlib.h> 

float getPV() 
{ 
    float d; 
    float start; 
    printf("Start: "); 
    scanf("%f", &start); 
    d = start; 
    return d; 
} 


void getIR(float *a) 
{ 
    printf("Rate: "); 
    scanf("%f",a); 
} 

void getNP(int *years) 
{ 
    printf("NumPeriods: "); 
    scanf("%d", years); 
} 
float interest(float a,float b,float c) 
{ 
    float x; 

    x = a*b*c; 
    return x; 
} 

int main() 
{ 
    float pv,ir,fv,Total; 
    int np; 

    pv = getPV();  //Amount in account 

    getIR(&ir);  // APR 

    getNP(&np);  // Number of years 

    fv = interest(pv,ir,np); 
    Total=fv + pv; 
    printf("Starting: %.2f\n", pv); 
    printf(" Ending: %.2f\n", Total); 

    return 0; 
} 
+0

**請**編輯您的問題,使其可讀性。請參閱:http://stackoverflow.com/editing-help –

+0

你想要簡單還是複合興趣?還可以將問題的字體縮小爲更易於管理的大小。最好是默認大小。 –

+0

不知道你需要什麼幫助。是的,你需要一個循環,除非你要把[pow()'](http://en.cppreference.com/w/c/numeric/math/pow)函數除掉。在線上的任何一百萬個地方都可以爲您提供複利的公式,然後您可以將它轉換爲循環或函數調用。 – WhozCraig

回答

0

也許這樣?

float interest(float a,float b,float c) 
{ 
    return a * pow(1.0f + b, c); 
} 

b假設是象0.05的數,每年平均5%,並且是c若干年(其不必須是一個整數)。

+0

該函數的名稱並不反映它實際計算的內容。這確實是計算*未來值*的正確公式,但不是*利息*。興趣可以通過在最終乘法之前從右邊減去'1.0'來計算。正確的想法,但是。 – WhozCraig

+0

我只是複製粘貼OP的功能簽名。我同意選擇合適的名字非常重要。計算機科學中只有兩件難事:緩存失效和命名事物._^_ ^ –