[英]double function won't return correct value
我不知道為什么我的monthlyPayment function 不會返回任何東西。 我嘗試使用 printf function 對其進行調試,它似乎正在計算正確的值,只是沒有返回它。 當你運行它時,它顯示正確的值在 function 中,但它沒有被返回。 有什么建議么?
#include <stdio.h>
#include <math.h>
// calculate monthly payment amount
double monthlyPayment(int loanAmount, int numOfPayments, double interestPerYear) {
double paymentsPerMonth;
double interestPerMonth = (interestPerYear / 12) * .01;
printf("%lf\n", interestPerMonth);
double numerator = interestPerMonth * pow((1 + interestPerMonth), numOfPayments);
printf("%lf\n", numerator);
double denominator = pow((1 + interestPerMonth), numOfPayments) - 1;
printf("%lf\n", denominator);
paymentsPerMonth = loanAmount * (numerator / denominator);
printf("%lf\n", paymentsPerMonth);
return paymentsPerMonth;
}
int main(void) {
// init variables
int loanAmount;
double interestPerYear;
int numOfPayments;
double monthly;
// get loanAmount
printf("Enter amount of loan: $ ");
scanf("%d", &loanAmount);
printf("%d", loanAmount);
// get interestPerYear
printf("Enter Interest rate per year: % ");
scanf("%lf", &interestPerYear);
printf("%lf", interestPerYear);
// get numOfPayments
printf("Enter number of payments: ");
scanf("%d", &numOfPayments);
monthly = monthlyPayment(loanAmount, numOfPayments, interestPerYear);
printf("Monthly: %lf\n", &monthly);
/*
* interest() = Balance(n-1) * r; (paid interest)
* principal() = M.Payment - interest(n) (paid principal)
* Balance(n) = Balance(n-1) - principal(n) (new balance)
*
*
* */
return 0;
}
您不需要在要打印的變量之前使用 &。 你應該寫: printf("每月: %lf\n", 每月); 而不是 printf("每月: %lf\n", &monthly); &適用於掃描而非打印。 您還可以使用 ide 調試器輕松調試您的代碼,並且您不需要打印每個變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.