ローン返済のプログラム
実行例のようになるプログラムを教えてください。
ローンの返済シミュレータを作成しなさい。
(入力)
・借入額(円)
・年利(3%か5%の選択式)
・返済額(円/年)
<実行結果例>
Please enter the amount of loan(yen):10000
Please choose the interest rate(3 or 5%):4
! Error: Please enter the 3 or 5.
Please choose the interest rate(3 or 5%):3
Please enter the amount of annual repayment(yen/year):200
! Error: The repayment amount is lower than the interest rate.
Please enter the amount of annual repayment(yen/year):1000
--------------------------------
Amount of loan : 10000 yen
Total repayment : 12076 yen
Repayment years : 13 year
ローン返済のプログラム
Re: ローン返済のプログラム
これくらいしかわかりません。
ループはまださせていません。
#include<stdio.h>
int main(void)
{
float a,b,c,d,e,f;
printf("Please enter the amount of loan(yen):");
scanf(" %f",&a);
printf("Plese choose the interest rate(3 or 5%):");
scanf(" %f",&b);
if(b!=3 && b!=5)
{
printf("!Error:Please enter the 3 or 5.");
}
if(b==3)
{
c=a*0.03;
printf("Plese enter the amount of annual repayment(yen/year):");
scanf(" %f",&d);
if(c!=d)
{
printf("!Error:The repayment amount is lower than the interest rate.");
}
}
else
{
printf("Please enter the amount of annual repayment(yen/year):");
scanf(" %f",&e);
}
}
ループはまださせていません。
#include<stdio.h>
int main(void)
{
float a,b,c,d,e,f;
printf("Please enter the amount of loan(yen):");
scanf(" %f",&a);
printf("Plese choose the interest rate(3 or 5%):");
scanf(" %f",&b);
if(b!=3 && b!=5)
{
printf("!Error:Please enter the 3 or 5.");
}
if(b==3)
{
c=a*0.03;
printf("Plese enter the amount of annual repayment(yen/year):");
scanf(" %f",&d);
if(c!=d)
{
printf("!Error:The repayment amount is lower than the interest rate.");
}
}
else
{
printf("Please enter the amount of annual repayment(yen/year):");
scanf(" %f",&e);
}
}
Re: ローン返済のプログラム
! Error: The repayment amount is lower than the interest rate.
このメッセージが出る条件がわからないのですが。
元金×年利 以下の場合でしょうか?
このメッセージが出る条件がわからないのですが。
元金×年利 以下の場合でしょうか?
non
Re: ローン返済のプログラム
とりあえずここまでのプログラムを見ていると、
1. bをfloat型で宣言する意味は何でしょうか?
3か5%ならint型でいいような気がしますが
2. if(c!=d)とありますがdには何も入っていませんよね?
なにと比較しようとしているのでしょうか?
アドバイスとしてまず処理の概要からかんがえてみましょう。
大まかには入力、計算、表示、エラー処理の四つです。
おすすめする方法は表示、入力、計算、エラー処理の順で作っていくことですが、
今入力のところは何となくできているので、一気に表示と入力を作ってみましょう。
とりあえずですが、
(入力)
・借入額(円)
・年利(3%か5%の選択式)
・返済額(円/年)
で入力をそのまま
借入額=10000yen
年利=3%
返済額=1000yen
と出力するプログラムはできますか?
できるなら計算の部分も作ってみましょう。
エラー処理は最後に作ることをお勧めします
1. bをfloat型で宣言する意味は何でしょうか?
3か5%ならint型でいいような気がしますが
2. if(c!=d)とありますがdには何も入っていませんよね?
なにと比較しようとしているのでしょうか?
アドバイスとしてまず処理の概要からかんがえてみましょう。
大まかには入力、計算、表示、エラー処理の四つです。
おすすめする方法は表示、入力、計算、エラー処理の順で作っていくことですが、
今入力のところは何となくできているので、一気に表示と入力を作ってみましょう。
とりあえずですが、
(入力)
・借入額(円)
・年利(3%か5%の選択式)
・返済額(円/年)
で入力をそのまま
借入額=10000yen
年利=3%
返済額=1000yen
と出力するプログラムはできますか?
できるなら計算の部分も作ってみましょう。
エラー処理は最後に作ることをお勧めします
Re: ローン返済のプログラム
このような、一見何を意味するのかわからない変数名ではなく、
元金とか利息とか返済額とかが一目でわかるような名前を
付ける方がいいと思いませんか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: ローン返済のプログラム
借入額が 10000円で、年利 3%、返済額 1000円/年で
返済総額が 12076円、返済期間が 13年になることを説明できますか?
1年後には 10000円の 3% で 300円の利息がついて、借入額は 10300円になります。
そこで、1000円を返済すると、借入残高は 9300円になります。
2年後、9300 x 0.03 = 189 円の利息がついて、借入額は 9489円になります。
そこで、1000円を返済すると、借入残高は 8489円なります。
3年後、8489 x 0.03 = 254.67 円の利息になりますが、多分、0.67円はおまけして
くれるので、254円の利息になるでしょう。借入額は8489 + 254 = 8743円。
そこで、1000円を返済すると、借入残高は 7743円なります。
これを繰り返して、借入額が 0 円か、それ以下になれば返済完了です。
0以下になるということは、最後の返済は 1000円より少なくてよいということです。
借入額 amount = 10000、年利 rate = 0.03、返済額 repayment = 1000 から出発して
返済期間は n 年、返済総額は rapyament * n + amount でしょう。
最後に amount は負になっていますから、その分少なくて済みます。
ありゃりゃ、返済総額が 12063円になってしまいました。
利息の端数はおまけしてくれないようです。
切り捨ての floor の代わりに切り上げの ceil を使いましょう。
これらの関数を使うためには #include <math.h> が必要です。
返済総額が 12076円、返済期間が 13年になることを説明できますか?
1年後には 10000円の 3% で 300円の利息がついて、借入額は 10300円になります。
そこで、1000円を返済すると、借入残高は 9300円になります。
2年後、9300 x 0.03 = 189 円の利息がついて、借入額は 9489円になります。
そこで、1000円を返済すると、借入残高は 8489円なります。
3年後、8489 x 0.03 = 254.67 円の利息になりますが、多分、0.67円はおまけして
くれるので、254円の利息になるでしょう。借入額は8489 + 254 = 8743円。
そこで、1000円を返済すると、借入残高は 7743円なります。
これを繰り返して、借入額が 0 円か、それ以下になれば返済完了です。
0以下になるということは、最後の返済は 1000円より少なくてよいということです。
借入額 amount = 10000、年利 rate = 0.03、返済額 repayment = 1000 から出発して
返済期間は n 年、返済総額は rapyament * n + amount でしょう。
最後に amount は負になっていますから、その分少なくて済みます。
ありゃりゃ、返済総額が 12063円になってしまいました。
利息の端数はおまけしてくれないようです。
切り捨ての floor の代わりに切り上げの ceil を使いましょう。
これらの関数を使うためには #include <math.h> が必要です。
Re: ローン返済のプログラム
計算間違っていますね。かずま さんが書きました:2年後、9300 x 0.03 = 189 円の利息がついて、借入額は 9489円になります。
そこで、1000円を返済すると、借入残高は 8489円なります。
3年後、8489 x 0.03 = 254.67 円の利息になりますが、多分、0.67円はおまけして
くれるので、254円の利息になるでしょう。借入額は8489 + 254 = 8743円。
そこで、1000円を返済すると、借入残高は 7743円なります。
2年後、9300 x 0.03 = 279 円の利息がついて、借入額は 9579円になります。
そこで、1000円を返済すると、借入残高は 8579円なります。
3年後、8579 x 0.03 = 257.37 円の利息になりますが、多分、0.37円はおまけして
くれるので、257円の利息になるでしょう。借入額は8489 + 254 = 8833円。
そこで、1000円を返済すると、借入残高は 7833円なります。
手計算では間違いが入るもんです。だからプログラムを書くんですね。