Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語でローン残高の毎月の分割払いを計算するプログラムの作成方法

問題

C言語を使用して、特定のローン金額(利息を含む)に対して、毎月支払うべき残高の分割払い額を計算するプログラムを作成します。

解決方法

ローン金額が与えられた場合に月々の利息を求めるための基本となる数式は以下の通りです。

i = loanamt * ((interest / 100) / 12);

この数式では、年利率(interest)を100で割って小数に変換し、さらに12で割ることで「1か月分の利率」を求めています。続いて、その月利を元本に掛けることで、当月の利息額が算出されます。

次の計算を行うことで、利息を含めた残高と、返済後の残り金額が求められます。

i = i + loanamt;                          // 元本+利息の合計額
firstmon = i - monthlypayment;            // 1回目返済後の残高
i = firstmon * ((interest / 100) / 12);   // 残高に対する翌月分の利息

この流れを繰り返すことで、2回目以降の返済後残高も順番に計算できます。

計算の流れ

  1. ローン金額に月利を掛けて、当月の利息を求める。
  2. 元本に利息を加えて、返済前の総残高を算出する。
  3. 総残高から月々の返済額を差し引き、返済後の残高を得る。
  4. 新しい残高に対して同じ計算を繰り返す。

プログラム

#include<stdio.h>
int main(){
    float loanamt, interest, monthlypayment;
    float i, firstmon, secondmon;
    printf("enter the loan amount:");
    scanf("%f", &loanamt);
    printf("interest rate:");
    scanf("%f", &interest);
    printf("monthly payment:");
    scanf("%f", &monthlypayment);
    // 利息の計算 //
    i = loanamt * ((interest / 100) / 12);
    // 利息を含んだ金額
    i = i + loanamt;
    firstmon = i - monthlypayment; // 1回目返済後の残高
    i = firstmon * ((interest / 100) / 12);
    i = i + firstmon;
    secondmon = i - monthlypayment; // 2回目返済後の残高
    printf("remaining amount need to pay after 1st installment:%.2f\n", firstmon);
    printf("remaining amount need to pay after 2nd installment:%.2f\n", secondmon);
    return 0;
}

実行結果

enter the loan amount:45000
interest rate:7
monthly payment:1000
remaining amount need to pay after 1st installment:44262.50
remaining amount need to pay after 2nd installment:43520.70

実行結果の解説

この例では、ローン金額45,000円、年利率7%、月々の返済額1,000円を入力しています。

  • 1回目の返済後: 当月の利息は 45,000 × (7 ÷ 100 ÷ 12) = 262.50 となるため、45,262.50 − 1,000 = 44,262.50 が残高になります。
  • 2回目の返済後: 新しい残高44,262.50に対する利息は約258.20となり、44,520.70 − 1,000 = 43,520.70 が残高になります。

このように、残高に対して毎月利息が加算され、そこから返済額が差し引かれていく仕組みが確認できます。変数を配列やループと組み合わせれば、返済が完了するまでの全期間の残高推移も簡単に計算できるようになります。

  1. C言語でPGM形式の画像ファイルを書き出す方法

    PGM形式とはPGM(Portable Gray Map:ポータブルグレイマップ)は、グレースケール画像を扱うためのシンプルな画像フォーマットです。C言語で保持している2次元配列をPNGやJPEGなどの一般的な画像形式として保存するには、データを所定のフォーマットにエンコードするための複雑な処理を大量に実装する必要があります。そこで役立つのがNetpbm形式です。Netpbmはオープンソースのグラフィックスプログラム群で、主にLinuxやUnixプラットフォームで利用されていますが、Microsoft Windows環境でも動作します。この形式を利用すれば、2次元配列のデータを簡単かつ移植性の

  2. C++の再帰を使って木(ツリー)のサイズを計算するプログラムの作成方法

    この問題では、二分木が与えられ、「再帰」を使って木のサイズを計算するプログラムを作成することが課題となります。 ここでいう木のサイズとは、その木に含まれるノードの総数のことです。 具体例を見ながら問題を理解していきましょう。 上の木の場合、サイズは 5 となります。 解法の考え方:再帰によるサイズ計算 木のサイズを求めるには、左部分木のサイズ + 右部分木のサイズ + 1(現在のノード) を計算します。再帰関数は、木の左右それぞれの部分木に対して呼び出され、部分木が存在しない(NULL の)場合は 0 を返します。 上記の例をこの手法で解いてみる ルート(値3)のサイズを求める場合: si