[英]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.