复利4.0 #include<stdio.h>
#include<math.h>
double principal=0,mount=0;
int year=0;
int n=1;
double rate;
void meu()
{
printf("|----------------------------------------|\n");
printf("| 1.复利计算 |\n");
printf("| 2.单利计算 |\n");
printf("| 3.计算本金 |\n");
printf("| 4.年限计算 |\n");
printf("| 5.利率估算 |\n");
printf("| 6.等额定投 |\n");
printf("| 7.等额还款 |\n");
printf("|----------------------------------------|\n");
}
void danli(){
printf("请输入的本金:");
scanf("%lf",&principal);
printf("请输入年限:");
scanf("%d",&year);
printf("请输入年利率:");
scanf("%lf",&rate);
mount=principal+principal*rate*year;
printf("本息为:%.2lf\n",mount);
}
void fuli(){
printf("请输入本金:");
scanf("%lf",&principal);
printf("请输入年限:");
scanf("%d",&year);
printf("请输入年利率:");
scanf("%lf",&rate);
printf("请输入年复利次数:");
scanf("%d",&n);
rate=pow((1+rate/n),n)-1;
mount=principal*pow((1+rate),year);
printf("本息为:%.2lf\n",mount);
}
void principaljisuan(){
printf("请输入期望的收益:");
scanf("%lf",&mount);
printf("请输入年限:");
scanf("%d",&year);
printf("请输入年利率:");
scanf("%lf",&rate);
printf("请输入年复利次数:");
scanf("%d",&n);
rate=pow((1+rate/n),n)-1;
principal=mount/pow((1+rate),year);
printf("输出所需本金为:%.2lf\n",principal);
}
void time()
{
int flat=0;
printf("请输入本利和:");
scanf("%lf",&mount);
printf("请输入年回报率:");
scanf("%lf",&rate);
printf("请输入本金:");
scanf("%lf",&principal);
for(n=1;n<100;n++) //穷举法求100年满足的计息期数
{
if((principal*(pow((1+rate),n)))>=mount)
{
printf("计息期数:%d\n\n",n);
flat=1;
break;
}
}
if(flat==0)
printf("在100年内没有符合计息期数!\n\n");
}
void lilv()
{
printf("请输入本利和:");
scanf("%lf",&mount);
printf("请输入复利次数(年):");
scanf("%d",&year);
printf("请输入本金:");
scanf("%lf",&principal);
rate=pow(mount/principal, 1.0/year)-1;
printf("年利率为:%lf",rate);
}
void yearmount()//计算年金终值
{
int n;
printf("存入本金:");
scanf("%lf",&principal);
printf("存入年限:");
scanf("%d",&year);
printf("年利率:");
scanf("%lf",&rate);
printf("\t\t1:按年投资\n\t\t2:按月投资\n");
A:printf("请选择你要的功能<1|2>:");
scanf("%d",&n);
if(n==1)
{
mount=principal*(pow(1+rate,year)-1)/rate;
}
else if(n==2)
{
mount=principal*12*(1+rate)*(pow(1+rate,year)-1)/rate;
}
else
{
printf("输入有误!请重新输入\n");
goto A;
}
printf("%d年后的总产值:%.4lf\n",year,mount);
}
void huankuan()
{
printf("贷款金额:");
scanf("%lf",&mount);
printf("贷款年限:");
scanf("%d",&year);
printf("年利率:");
scanf("%lf",&rate);
principal=mount*rate/(12*(1-rate)*(pow(1-rate,year)-1));
printf("贷款%.4lf每月需要还款%.4lf\n",mount,principal);
}
main(){
while(1){
int num=0;
meu();
printf("请输入选择:");
scanf("%d",&num);
switch(num){
case 1:
fuli();
break;
case 2:
danli();
break;
case 3:
principaljisuan();
break;
case 4:
time();
break;
case 5:
lilv();
break;
case 6:
yearmount();
break;
case 7:
huankuan();
break;
}
}
}