C言語で作るEMI(月々返済額)計算機プログラムの実装方法
ローンを組む際、毎月いくら返済すればよいのかを把握することは非常に重要です。本記事では、元金・利率・期間の値が与えられたときに、毎月の返済額(EMI)を自動計算するプログラムをC言語で作成する方法を解説します。
EMIとは?
EMIは「Equated Monthly Installment(均等月払い)」の略称で、ローンの元金と利息を含めた金額を毎月一定額で支払う返済方式のことです。この計算機を使えば、ユーザーは自分のローンにおける毎月の返済額を簡単に求めることができます。
実行例
入力: principal = 2000 rate = 5 time = 4 出力: Monthly EMI is= 46.058037
使用する計算式
このプログラムでは、以下の標準的なEMI計算式を使用します。
EMI = (P × R × (1 + R)T) / ((1 + R)T − 1)
各変数の意味は次のとおりです。
- P: 借入金額(元金・Principal)
- R: 月あたりの利率(年利率 ÷ 12 ÷ 100)
- T: ローン期間(年単位)
プログラムの考え方
- 元金、利率、期間をfloat型の変数として受け取る
- 上記の計算式を適用してEMI金額を求める
- 計算結果のEMI金額を出力する
アルゴリズム
Start
Step 1 -> EMIを計算する関数を宣言
float calculate_EMI(float p, float r, float t)
float emi
r = r / (12 * 100) を設定(月利に変換)
t = t * 12 を設定(月数に変換)
emi = (p * r * pow(1 + r, t)) / (pow(1 + r, t) - 1) を設定
emi を返す
Step 2 -> main() 内での処理
float型の変数 principal, rate, time, emi を宣言
principal = 2000, rate = 5, time = 4 を設定
emi = calculate_EMI(principal, rate, time) を設定
emi を表示
Stop
C言語による実装コード
#include <math.h>
#include <stdio.h>
// EMIを計算する関数
float calculate_EMI(float p, float r, float t){
float emi;
r = r / (12 * 100); // 1か月分の利率に変換
t = t * 12; // 期間を月単位に変換
emi = (p * r * pow(1 + r, t)) / (pow(1 + r, t) - 1);
return (emi);
}
int main(){
float principal, rate, time, emi;
principal = 2000;
rate = 5;
time = 4;
emi = calculate_EMI(principal, rate, time);
printf("\nMonthly EMI is= %f\n", emi);
return 0;
}
実行結果
Monthly EMI is= 46.058037
コードのポイント解説
このプログラムの重要なポイントは、calculate_EMI 関数内での値の前処理です。入力された年利率 r を r / (12 * 100) によって月利に変換し、同様に期間 t も t * 12 で月数へと変換しています。
また、べき乗の計算には <math.h> ヘッダーで提供される pow() 関数を使用しています。(1 + R) を返済回数乗し、その値を使って複利計算に基づいた正確なEMIを導き出します。
たとえば元金2000、年利5%、期間4年という条件では、毎月の返済額は約46.06となり、これが4年間(48回)継続して支払われることになります。実際のローンシミュレーションにも応用できるシンプルかつ実用的なプログラムです。
-
C言語で配列の全要素の積を求めるプログラム
n個の要素を含む配列 arr[n] が与えられたとき、その配列内のすべての要素の積を求めることが課題となります。例えば、7つの要素からなる配列 arr[7] の場合、積は以下のように計算されます。例入力: arr[] = { 10, 20, 3, 4, 8 } 出力: 19200 説明: 10 × 20 × 3 × 4 × 8 = 19200 入力: arr[] = { 1, 2, 3, 4, 3, 2, 1 } 出力: 144解き方のアプローチ配列を入力として受け取る。配列のサイズを求める。配列を反復処理しながら、各要素を掛け合わせる。結果を表示する。アルゴリズム開始 関数 int pro
-
C言語で作る!キラキラ点滅するクリスマスツリー表示プログラム
今回は少しユニークなプログラミング課題を紹介します。C言語を使って、クリスマスツリーをランダムに表示する方法です。完成したツリーは、本物のクリスマスイルミネーションのようにキラキラと点滅して見えます。 クリスマスツリーの表示の仕組み クリスマスツリーを描くには、大きさの異なる三角形(ピラミッド)をいくつも縦に積み重ねて出力します。装飾的な葉っぱの部分には、あらかじめ用意した文字リスト(.・*・+・o・O)の中からランダムに1文字を選んで表示します。 ツリーの高さやランダム性の度合いは、ソースコード冒頭のマクロ定数を書き換えるだけで自由に調整できます。 点滅が実現される仕組み このプログラムのポ