复利计算-3

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<math.h>
  4 void Compounding(){
  5     int n,k;
  6     double F,P;
  7     float i;
  8     printf("|-----------------------------------------|
");
  9     printf("   请输入你所存入的本金:");
 10     scanf("%lf",&P);
 11     printf("|-----------------------------------------|
");
 12     printf("   请输入你所存的年利率比:");
 13     scanf("%f",&i);
 14     printf("|-----------------------------------------|
");
 15     printf("   请输入你所存的年限:");
 16     scanf("%d",&n);
 17     printf("|-----------------------------------------|
");
 18     printf("   请输入你所存的复利次数:");
 19     scanf("%d",&k);
 20     printf("|-----------------------------------------|
");
 21     F=P*pow(i/k+1,k*n);
 22     printf("
通过复利存款,你所获得的金额为:%.4lf

",F);
 23 }
 24 
 25 void Simple_Interested(){
 26     int n;
 27     double F,P;
 28     float i;
 29     printf("|-----------------------------------------|
");
 30     printf("   请输入你所存入的本金:");
 31     scanf("%lf",&P);
 32     printf("|-----------------------------------------|
");
 33     printf("   请输入你所存的周期利息:");
 34     scanf("%f",&i);
 35     printf("|-----------------------------------------|
");    
 36     printf("   请输入你所存的周期数:");
 37     scanf("%d",&n);
 38     printf("|-----------------------------------------|
");
 39     F=P*(1+i*n);
 40     printf("
通过单利存款,你所获得的金额为:%.4lf

",F);
 41 }
 42 
 43 void Comparison(){
 44     printf("		<复利计算器>
");
 45     Compounding();
 46     printf("		<单利计算器>
");
 47     Simple_Interested();
 48 }
 49 
 50 void Count_Deposit(){
 51     double F,P;
 52     float i;
 53     int n,k,a;
 54     printf("
请输入你希望获得的最终金额为:");
 55     scanf("%lf",&F);
 56     printf("
请输入你选的存款方式(1、复利;2、单利):");
 57     scanf("%d",&a);
 58     switch(a)
 59     {
 60     case 1:
 61         printf("
请输入<<复利>>存款的信息!!!!!
");
 62         printf("|-----------------------------------------|
");
 63         printf("   请输入<<复利>>你所存的年利率比:");
 64         scanf("%f",&i);
 65         printf("|-----------------------------------------|
");
 66         printf("   请输入<<复利>>你所存的年限:");
 67         scanf("%d",&n);
 68         printf("|-----------------------------------------|
");
 69         printf("   请输入<<复利>>你所存的复利次数:");
 70         scanf("%d",&k);
 71         printf("|-----------------------------------------|
");
 72         P=F/pow(i/k+1,k*n);
 73         printf("
通过复利存款,你所需要的存款金额为:%lf

",P);
 74         break;
 75     case 2:
 76         printf("请输入<<单利>>存款的信息!!!!!
");
 77         printf("|-----------------------------------------|
");
 78         printf("   请输入<<单利>>你所存的周期利息:");
 79         scanf("%f",&i);
 80         printf("|-----------------------------------------|
");    
 81         printf("   请输入<<单利>>你所存的周期数(年份):");
 82         scanf("%d",&n);
 83         printf("|-----------------------------------------|
");
 84         P=F/(1+i*n);
 85         printf("
通过单利存款,你所需要的存款金额为:%lf

",P);
 86         break;
 87     }
 88 }
 89 
 90 void Count_Year(){
 91     double n,F,P;
 92     float i;
 93     int k,a;
 94     printf("
请输入你所存的金额为:");
 95     scanf("%lf",&P);
 96     printf("
请输入你希望获得的最终金额为:");
 97     scanf("%lf",&F);
 98     printf("
请输入你选的存款方式(1、复利;2、单利):");
 99     scanf("%d",&a);
100     switch(a)
101     {
102     case 1:
103         printf("
请输入<<复利>>存款的信息!!!!!
");
104         printf("|-----------------------------------------|
");
105         printf("   请输入<<复利>>你所存的年利率比:");
106         scanf("%f",&i);
107         printf("|-----------------------------------------|
");
108         printf("   请输入<<复利>>你所存的复利次数:");
109         scanf("%d",&k);
110         printf("|-----------------------------------------|
");
111         n=log(F/P)/log(i/k+1)/k;
112         printf("
通过复利存款,你所需要的存款年限为:%lf

",n);
113         break;
114     case 2:
115         printf("请输入<<单利>>存款的信息!!!!!
");
116         printf("|-----------------------------------------|
");
117         printf("   请输入<<单利>>你所存的周期利息:");
118         scanf("%f",&i);
119         printf("|-----------------------------------------|
");
120         n=(F/P-1)/i;
121         printf("
通过单利存款,你所需要的存款年限为:%lf

",n);
122         break;
123     }
124 }
125 
126 void Count_Interest(){
127     double F,P,b,i;
128     int k,a,n;
129     printf("
请输入你所存的金额为:");
130     scanf("%lf",&P);
131     printf("
请输入你希望获得的最终金额为:");
132     scanf("%lf",&F);
133     printf("
请输入你所存款的年限:");
134     scanf("%d",&n);
135     printf("
请输入你选的存款方式(1、复利;2、单利):");
136     scanf("%d",&a);
137     switch(a)
138     {
139     case 1:
140         printf("
请输入<<复利>>存款的信息!!!!!
");
141         printf("|-----------------------------------------|
");
142         printf("   请输入<<复利>>你所存的复利次数:");
143         scanf("%d",&k);
144         printf("|-----------------------------------------|
");
145         b=(double)1/(k*n);
146         i=(pow(F/P,b)-1)*k;
147         printf("
通过复利存款,你所需要的存款的利率为:%lf

",i);
148         break;
149     case 2:
150         i=(F/P-1)/n;
151         printf("
通过单利计算,你所需要的存款的利率为:%lf

",i);
152         break;
153     }
154 }
155 
156 void Count_Money(){
157     int n,a;
158     double F,P;
159     float i;
160     printf("|-----------------------------------------|
");
161     printf("   请输入你每次所投入的本金:");
162     scanf("%lf",&P);
163     printf("|-----------------------------------------|
");
164     printf("   请输入你所投本金的利息:");
165     scanf("%f",&i);
166     printf("|-----------------------------------------|
");    
167     printf("   请输入你所存款的年限:");
168     scanf("%d",&n);
169     printf("|-----------------------------------------|
");
170     printf("
请输入你选的存款方式(1、年投;2、月投):");
171     scanf("%d",&a);
172     switch(a)
173     {
174     case 1:
175         F=P*(1+i)*(pow(1+i,n)-1)/i;
176         break;
177     case 2:
178         F=P*(1+i/12)*(pow(1+i/12,12*n)-1)/(i/12);    
179         break;
180     }
181     printf("
存款%d年,你所获得的金额为:%.4lf

",n,F);
182 }
183 
184 
185 void main(){
186     char t;
187     int a;
188     printf("|-----------------------------------------|
");
189     printf("|              1、用复利计算              |
");
190     printf("|-----------------------------------------|
");
191     printf("|              2、用单利计算              |
");
192     printf("|-----------------------------------------|
");
193     printf("|      3、输出复利计算、单利计算的结果    |
");
194     printf("|-----------------------------------------|
");
195     printf("|            4、输入终值求存款            |
");
196     printf("|-----------------------------------------|
");
197     printf("|        5、输入终值、存款求所需年份      |
");
198     printf("|-----------------------------------------|
");
199     printf("|       6、输入终值、存款、年份求利率     |
");
200     printf("|-----------------------------------------|
");
201     printf("| 7、输每年(月)投入本金,求几年后的终值 |
");
202     printf("|-----------------------------------------|
");
203 loop:
204     printf("
请输入你的选择:");
205     scanf("%d",&a);
206     switch(a)
207     {
208     case 1:
209         system("cls");
210         t=getchar();
211         Compounding();
212         break;
213     case 2:
214         system("cls");
215         t=getchar();
216         Simple_Interested();
217         break;
218     case 3:
219         system("cls");
220         t=getchar();
221         Comparison();
222         break;
223     case 4:
224         system("cls");
225         t=getchar();
226         Count_Deposit();
227         break;
228     case 5:
229         system("cls");
230         t=getchar();
231         Count_Year();
232         break;
233     case 6:
234         system("cls");
235         t=getchar();
236         Count_Interest();
237         break;
238     case 7:
239         system("cls");
240         t=getchar();
241         Count_Money();
242         break;
243     default:
244         printf("输入错误!请重新输入!
");
245         goto loop;
246     }     
247 }

1、年份



2、利率



3、年(月)投入



原文地址:https://www.cnblogs.com/moliny/p/5288022.html