繁体   English   中英

双 function 不会返回正确的值

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM