复利计算4.0

#include<stdio.h>
#include<math.h>
#include<conio.h>


void benjin()//计算本金
{
     int N,m;
     double i,F,P;
     printf("复利终值:");
     scanf("%lf",&F);
     printf("年利率:");
     scanf("%lf",&i);
     printf("存入年限:");
     scanf("%d",&N);
     printf("年复利次数:");
     scanf("%d",&m);
     P=F/pow((1+i/m),N*m);
     printf("年复利终值为%.4lf需要本金为:%.4lf
",F,P);
}
void fuli()//计算复利终值
{
     int N,m;
     double i,F,P;
     printf("存入本金:");
     scanf("%lf",&P);
     printf("年利率:");
     scanf("%lf",&i);
     printf("存入年限:");
     scanf("%d",&N);
     printf("年复利次数:");
     scanf("%d",&m);
     F=P*pow((1+i/m),N*m);
     printf("复利终值:%.4lf
",F);
}
void danli()//单利计算
{
     int N;
     double i,H,P,L;
     printf("存入本金:");
     scanf("%lf",&P);
     printf("年利率:");
     scanf("%lf",&i);
     printf("存入年限:");
     scanf("%d",&N);
     L=P*N*i;
     H=L+P;
     printf("本息和为:%.4lf
",H);
}
void years()//求年份
{
     int N,m;
     double i,F,P;
     printf("复利终值:");
     scanf("%lf",&F);
     printf("存入本金:");
     scanf("%lf",&P);
     printf("年利率:");
     scanf("%lf",&i);
     printf("年复利次数:");
     scanf("%d",&m);
     N=(int)(log(F/P)/log(1+i/m)/m);
     printf("从%.4lf到%.4lf需要%d年
",P,F,N);
}
void nianlilv()//计算年利率
{
     int N,m;
     double i,F,P;
     printf("复利终值:");
     scanf("%lf",&F);
     printf("存入本金:");
     scanf("%lf",&P);
     printf("存入年限:");
     scanf("%d",&N);
     printf("年复利次数:");
     scanf("%d",&m);
     i=m*(pow(F/P,1.0/(N*m))-1);
     printf("从%.4lf到%.4lf需要%.4lf
",P,F,i);
}
void nianjinzhongzhi()//计算年金终值
{
     int N,n;
     double i,F,P;
     printf("存入本金:");
     scanf("%lf",&P);
     printf("存入年限:");
     scanf("%d",&N);
     printf("年利率:");
     scanf("%lf",&i);
     printf("		1:按年投资
		2:按月投资
");
A:printf("请选择你要的功能<1|2>:");
     scanf("%d",&n);
     if(n==1)
     {
         F=P*(pow(1+i,N)-1)/i;
         
     }
     else if(n==2)
     {
         F=N*12*(P*(i/12)+P);
     }
     else
     {
         printf("输入有误!请重新输入
");
         goto A;
     }
     printf("%d年后的总产值:%.4lf
",N,F);

}
void benxi()//本息
{
    double F,i,P;
    int N;
    printf("输入贷款金额:");
    scanf("%lf",&F);
    printf("输入贷款时间(年):");
    scanf("%D",&N);
    printf("输入年利率:");
    scanf("%lf",&i);
    P=F*i/(12*(1+i)*(pow(1+i,N)-1));
    printf("贷款%.4lf每月需要还款:%.4lf
",F,P);

}
void menu()//菜单
{
       printf("		|-----------------------------------|
");
       printf("		|             欢迎欢迎              |
");
       printf("		|-----------------------------------|
");
       printf("		|           1:计算本金              |
");
       printf("		|           2:计算年复利终值        |
");
       printf("		|           3:单利计算              |
");
       printf("		|           4:计算年份              |
");
       printf("		|           5:计算年利率            |
");
       printf("		|           6:年金终值              |
");
       printf("		|           7:贷款金额              |
");
       printf("		|           0:结束                  |
");
       printf("		|-----------------------------------|
");
       printf("请输入你要选择的功能(0~7):
");

}
void main()
{
     int n;
     while(1)
     {
         menu();
         scanf("%d",&n);
         if(n==0)
             break;
         switch(n)
         {
            case 1:
                benjin();break;
            case 2:
                fuli();break;
            case 3:
                 danli();break;
            case 4:
                 years();break;
            case 5:
                 nianlilv();break;
            case 6:
                 nianjinzhongzhi();break;
            case 7:
                benxi();break;
            case 0:n=0;break;    

         }
          getch();
     }
}

原文地址:https://www.cnblogs.com/joker317/p/5304157.html