元金、返済回数、利率を入力し、
元金均等払いの1回目から指定回数までの
支払額、利息、残高を実行結果画面に実行結果画面に表示する。
という課題が出されたのですが、基礎が出来ていないためわかりません。
元金均等払いとは返済額の元金部分が一定であるもので
・毎月の元金返済部分 元金÷返済回数で一定固定
・初回の利息支払部分 元金×利率÷12ヶ月
・N回目利息部分 元金×(1-(N-1)÷返済回数)×利率÷12ヶ月
・N回目の返済額 元金÷返済回数+元金×(1-(N-1)÷返済回数)×利率÷12ヶ月
ということらしいというところまでたどり着いたのですが、プログラミングがちんぷんかんぷんです。
よろしければ教えていただきたいです。お願いします。
借金の計算です。
Re:借金の計算です。
こんにちは。
>プログラミングがちんぷんかんぷんです。
このように言われましてもこちらとしては、どこからどの程度お教えしたらいいのかわかりません。
どの辺までわかって、どこ辺りを教えてほしいのか、
自分ではどの程度まで調べたのか、まず、書いてください。
>プログラミングがちんぷんかんぷんです。
このように言われましてもこちらとしては、どこからどの程度お教えしたらいいのかわかりません。
どの辺までわかって、どこ辺りを教えてほしいのか、
自分ではどの程度まで調べたのか、まず、書いてください。
Re:借金の計算です。
数値を入力するにはscanf関数を使用します。
scanfを使って2種類の入力を格納してみます。
scanfを使って2種類の入力を格納してみます。
#include <stdio.h> int main(){ int gankin,kaisu; printf("元金 ->") , scanf("%d",&gankin); printf("回数 ->") , scanf("%d",&kaisu); for(int i=0;i<kaisu;i++) printf("%d : %d\n",i,gankin*(i+1)); return 0; }このようにすることで、回数年分の出力が可能で、元金から年数倍して表示しています。
Re:借金の計算です。
後は単純に計算だけだと思ったのですが、複利の返済って難しいですね。
上記の式でうまくいくんでしょうか?
上の式ではうまく計算できないように思うのですが。
上記の式で計算すると
返済金額が毎月同じ額になるように計算するには・・・どうしたらいいのでしょう。
利子は毎月残金にかかり、利率の1/12がかかるんでしょうか?
利率r(%ではなく1.05等とする)円でA円借りて、6回で毎月同額L円返すとき
1ヶ月目の残高は
(A)*(r/12)-L
ですよね?2ヶ月目の残高は
((A)*(r/12)-L)*(r/12)-L)
となり、6ヶ月で返済するのなら
(((((((A)*(r/12)-L)*(r/12)-L)*(r/12)-L)*(r/12)-L)*(r/12)-L)*(r/12)-L) = 0
となるって計算でいいんでしょうか?
このLを求めたらいいんでしょうけど、数学が苦手なんで求め方がわかりません(_ _|||)
上記の式でうまくいくんでしょうか?
上の式ではうまく計算できないように思うのですが。
上記の式で計算すると
元金 -> 100000 回数 -> 30 利率 -> 0.25 1 : 返済 5416 残高 94584 2 : 返済 5416 残高 89168 3 : 返済 5416 残高 83752 4 : 返済 5416 残高 78336 5 : 返済 5416 残高 72920 6 : 返済 5416 残高 67504 7 : 返済 5416 残高 62088 8 : 返済 5416 残高 56672 9 : 返済 5416 残高 51256 10 : 返済 5416 残高 45840 11 : 返済 5416 残高 40424 12 : 返済 5416 残高 35008 13 : 返済 5416 残高 29592 14 : 返済 5416 残高 24176 15 : 返済 5416 残高 18760 16 : 返済 5416 残高 13344 17 : 返済 5416 残高 7928 18 : 返済 5416 残高 2512 19 : 返済 5416 残高 -2904 20 : 返済 5416 残高 -8320 21 : 返済 5416 残高 -13736 22 : 返済 5416 残高 -19152 23 : 返済 5416 残高 -24568 24 : 返済 5416 残高 -29984 25 : 返済 5416 残高 -35400 26 : 返済 5416 残高 -40816 27 : 返済 5416 残高 -46232 28 : 返済 5416 残高 -51648 29 : 返済 5416 残高 -57064 30 : 返済 5416 残高 -62480計算したソースはこちらです。
#include <stdio.h> int main(){ int kaisu,zandaka,hensai; double gankin,riritu=0.0; printf("元金 -> ") , scanf("%lf",&gankin); printf("回数 -> ") , scanf("%d",&kaisu); printf("利率 -> ") , scanf("%lf",&riritu); zandaka = gankin; for(int i=1;i<=kaisu;i++){ hensai = gankin/(double)kaisu+gankin*(double)(1-(i-1)/kaisu)*riritu/12.0; printf("%2d : 返済%7d",i,hensai); zandaka -= hensai; printf(" 残高%7d\n",zandaka); } return 0; }寝てなくて頭がボーっとしてるのでものすごい重大なミスしてたらすみません・・。
返済金額が毎月同じ額になるように計算するには・・・どうしたらいいのでしょう。
利子は毎月残金にかかり、利率の1/12がかかるんでしょうか?
利率r(%ではなく1.05等とする)円でA円借りて、6回で毎月同額L円返すとき
1ヶ月目の残高は
(A)*(r/12)-L
ですよね?2ヶ月目の残高は
((A)*(r/12)-L)*(r/12)-L)
となり、6ヶ月で返済するのなら
(((((((A)*(r/12)-L)*(r/12)-L)*(r/12)-L)*(r/12)-L)*(r/12)-L)*(r/12)-L) = 0
となるって計算でいいんでしょうか?
このLを求めたらいいんでしょうけど、数学が苦手なんで求め方がわかりません(_ _|||)
Re:借金の計算です。
最初の説明がわかりにくかったようですいません。
元金均等返済では毎月の支払いは段々減っていきます。
利子は毎月残金に残金にかかり、1/12です。
1ヶ月の残高は 支払額10000、利息3%、支払い回数10回とすると
・毎月返済額は
元金÷支払い回数より
100000/10=10000円
・初回の利息は
元金*年率/12(ヶ月)
100000*0.03/12=250円
・初回返済額は
10000+250=10250円
2回目以降は
・利息は
残高*年率/12
89750*0.03/12=224円
・2回目支払額
10000+224=10225円
・残高は
元金-毎月返済額(金利含)
89750-10225=79525円
回数 返済額 内元金 内利息 残高
総計 101,375 100,000 1,375 100,000
1 10,250 10,000 250 89,750
2 10,225 10,000 225 79,525
3 10,200 10,000 200 69,325
4 10,175 10,000 175 59,150
5 10,150 10,000 150 49,000
6 10,125 10,000 125 38,875
7 10,100 10,000 100 28,775
8 10,075 10,000 75 18,700
9 10,050 10,000 50 8,675
10 8,675 10,000 25 0
となります。scanf関数は理解できました。ありがとうございます。
元金均等返済では毎月の支払いは段々減っていきます。
利子は毎月残金に残金にかかり、1/12です。
1ヶ月の残高は 支払額10000、利息3%、支払い回数10回とすると
・毎月返済額は
元金÷支払い回数より
100000/10=10000円
・初回の利息は
元金*年率/12(ヶ月)
100000*0.03/12=250円
・初回返済額は
10000+250=10250円
2回目以降は
・利息は
残高*年率/12
89750*0.03/12=224円
・2回目支払額
10000+224=10225円
・残高は
元金-毎月返済額(金利含)
89750-10225=79525円
回数 返済額 内元金 内利息 残高
総計 101,375 100,000 1,375 100,000
1 10,250 10,000 250 89,750
2 10,225 10,000 225 79,525
3 10,200 10,000 200 69,325
4 10,175 10,000 175 59,150
5 10,150 10,000 150 49,000
6 10,125 10,000 125 38,875
7 10,100 10,000 100 28,775
8 10,075 10,000 75 18,700
9 10,050 10,000 50 8,675
10 8,675 10,000 25 0
となります。scanf関数は理解できました。ありがとうございます。
Re:借金の計算です。
とりあえずできましたけど、
>回数 返済額 内元金 内利息 残高
>総計 101,375 100,000 1,375 100,000
>1 10,250 10,000 250 89,750
>2 10,225 10,000 225 79,525
>3 10,200 10,000 200 69,325
>4 10,175 10,000 175 59,150
>5 10,150 10,000 150 49,000
>6 10,125 10,000 125 38,875
>7 10,100 10,000 100 28,775
>8 10,075 10,000 75 18,700
>9 10,050 10,000 50 8,675
>10 8,675 10,000 25 0
このサンプルは、間違ってるんじゃないでしょうか?
各返済額を全部足しても総返済額 101375 になりません。
#include <stdio.h> #include <math.h> int main(void) { int pri, num, pay, pri_bal, total = 0, odd, i; double in; scanf("%d %d %lf", &pri, &num, &in); printf("\n借入金 %d, 返済回数 %d, 年利率 %.3f\n\n", pri, num, in); in /= 12; odd = pri % num; pri_bal = pri; puts("回数 支払額 利息 元本残高"); for(i = 1; i <= num; i ++){ pay = (int)floor(pri / num + pri_bal * in + (odd > 0) + 0.5); printf("%4d %10d %5d %10d\n", i, pay, (int)floor(pri_bal * in + 0.5), pri_bal - pri / num - (odd > 0)); total += pay; pri_bal -= pri / num + (odd -- > 0); } printf("\n総返済額 %d\n", total); return 0; }
Re:借金の計算です。
自分でやってみた表が間違っていました。
http://www.miya-shoko.or.jp/interest/interes4.html
上のサイトでやるとフリオさんのようになりました。
お忙しいところお時間をかけていただいて、ありがとうございます。
http://www.miya-shoko.or.jp/interest/interes4.html
上のサイトでやるとフリオさんのようになりました。
お忙しいところお時間をかけていただいて、ありがとうございます。
Re:借金の計算です。
いまさらですが、
元利金等支払いの場合ができたので,載せておきます。
#include <stdio.h> #include <math.h> int main(void) { unsigned int num, i; double pri, in_rate, pay, pay_pri; printf("借入金額 : "); scanf("%lf", &pri); printf("返済回数 : "); scanf("%d", &num); printf(" 年利率 : "); scanf("%lf", &in_rate); printf("\n <借入金額:%d, 返済回数:%d, 年利率:%.3f>\n", (int)pri, num, in_rate); in_rate = 0.03 / 12; puts("\n[回数] [返済額] [内元金] [内利息] [元金残高]"); pay_pri = pri * in_rate / (pow(1 + in_rate, num) - 1); for(i = 1; i <= num; i ++){ pay = pay_pri + pri * in_rate; printf("%5d %10d %10d %8d %10d\n", i, (int)pay, (int)pay_pri, (int)(pri * in_rate), (int)(pri - pay_pri)); pri -= pay_pri; pay_pri *= (1 + in_rate); } printf("\n <返済総額 : %d>\n", (int)(pay_pri * num)); return 0; }