簡體   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