簡體   English   中英

C ++:構建函數

[英]C++: Building functions

我無法理解為什么我的功能無法正常工作。 我已經看過幾次while循環,但是我不明白為什么程序無法正確執行。 如何停止while循環無限關閉?

我正在嘗試創建一個程序,該程序告訴用戶還清貸款需要多長時間以及在上個月需要還清什么。 用戶輸入要借入的貸款,每月要支付的利息和錢數。

例如,我以年利率12%借了100美元。 第一個月,我必須支付$ 100 * 0.01 = $ 1。 假設我每月支付$ 50,那么我的新余額為100 + 1-50 = $ 51。 現在,我必須為此支付1%,即0.51美元。 我的新余額為51 + 0.51-50 = $ 1.51,我一直堅持下去,直到全部還清為止。

這是我的代碼如下所示:

#include <iostream>
using namespace std;
void get_input(double &principal, double &interest, double &payment);

int main()
{
    double money, i, pay;


    cout << "How much do you want to borrow ?";
    cin >> money;
    cout << "What is the annual interest rate expressed as a percent?";
    cin >> i;
    cout << "What is the monthly payment amount?";
    cin >> pay;

    i = i/100; 

    get_input(money, i, pay);

}

void get_input(double &principal, double &interest, double &payment)
{
    double totalpayment, add = 0;
    int months = 1;

while(principal>0)
{
    add = principal*interest;
    principal = principal + add - payment;
    months++;
}

    totalpayment = payment+principal;
    cout << "The last month for your debt to be paid off is: " << months << endl;
    cout << "Your final payment is: " << totalpayment << endl; 

}

您需要先將百分比除以100,然后再使用它們:

while(principal>0)
{
    add = principal*interest;//this multiplies the number by 18 instead of .18
    principal = principal + add - payment;
    months++;
}

您需要乘以百分比,然后再除以100

add=principal*interest/100.0;

此外,如果您以$ 1000美元的貸款支付每月18%的利息,那么如果您想還清,最好每月支付$ 180以上。 嘗試一些有意義的輸入(例如您的示例),或添加一些代碼以測試您的剩余債務是否減少了。

您是否使用過調試器? 如果是我,我會在while循環中設置一個斷點,並評估變量以查看其作用。 我發現調試代碼比閱讀並成為自己的調試器容易得多。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM