2015-11-05 68 views
-3

在我的抵押貸款計劃功能(我正在寫它在它自己的C文件,然後把它放在一個更大的程序中),它顯示每月付款爲0美元,因爲當我要求的抵押期限時,它跳過問我的意見,只是直接回答。此外,無關,但是有沒有辦法像別人的「我也有這個問題」這樣說,因爲有很多類似的程序(mortage有很多問題),或者這是最好的方法嗎?我不想混亂網站。抵押貸款計劃調試

編輯:現在它說「Segementation故障」我在爲抵押的消滅項(24個月)

編輯把24後:現在在說-0.0000支付

int main() 
{ 
    double x, m, n, r, p, y =0; //m is monthly payment, x is pow 

    printf("Enter principal amount now: "); 
    scanf("%d", &p); 

    printf("Enter interest rate (0.01 = 1%) now: "); 
    scanf("%lf", &r); 

    printf("Enter payment period in months now: "); 
    scanf("%lf",&n); 

    printf("Calculating... "); 

    //m = p [ r(1 + r)^n ]/[ (1 + r)^n - 1]; // mortage formula 

    x= 1+r; 

    y = pow(x, n);//call pow function 

    m= (p*(r*y))/(y-1); 



    printf("The monthly payment for your mortage is: %lf \n",m); //display mortage monthly payment 

} 


double pow(double x, double n) 
{ 

//double y =0; 
//base=x; 
//exp=n; 
return(0); 

} 
+4

'//調用戰俘function',實際上是不是你調用一個函數。最好回到你的學習書,因爲這是一個非常基本的失敗。 – usr2564301

+0

'double pow(double x,double n); //調用pow函數'​​查找聲明vs定義與函數調用。 – tangrs

+0

雖然尚未完成,但爲什麼它不會等待讓我投入抵押期?它等待我之前2的輸入。 – Jite

回答

1

你沒有正確調用pow函數。

變化pow函數調用:

y = pow(x, n); //call pow function 
+0

謝謝我發現我發佈了這個問題後(我忘記刪除pow的聲明並用pow替換它),但我不認爲這會導致它跳過最後一個scanf哈哈,謝謝大家 – Jite