复利计算

#include<stdio.h>

#include<math.h>

void FL()

{

         int n,j;

         double i,p,f;

         printf("请输入本金");

         scanf("%lf",&p);

         printf("请输入年利率");

         scanf("%lf",&i);

         printf("请输入存款年限");

         scanf("%d",&n);

         printf("请输入复利次数");

         scanf("%d",&j);

         f=p*pow((1+i/j),n*j);

         printf("本金利息共为%lf ",f);

}

void DL()

{

        

         double f,i,p,n;

         printf("请输入本金");

         scanf("%lf",&p);

         printf("请输入年利率");

         scanf("%lf",&i);

         printf("请输入存款年限");

         scanf("%lf",&n);

         f=p*(1+i*n);

         printf("本金利息共为%lf ",f);

}

void BJ()

{

         int n1,n2,j1,a;

         double f1,f2,i1,i2,p1,p2;

    printf("1:复利计算本金 ");

    printf("2:单利计算本金 ");

         printf("请输入序号(1-2)");

CBJ:

         scanf("%d",&a);

    switch(a)

         {

         case 1:

         printf("请输入目标金额");

         scanf("%lf",&f1);

         printf("请输入年利率");

         scanf("%lf",&i1);

         printf("请输入存款年限");

         scanf("%d",&n1);

         printf("请输入复利次数");

         scanf("%d",&j1);

         p1=f1/pow(i1/j1+1,j1*n1);

         printf("本金为%lf ",p1);

         break;

         case 2:

         printf("请输入目标金额");

         scanf("%lf",&f2);

         printf("请输入年利率");

         scanf("%lf",&i2);

         printf("请输入存款年限");

         scanf("%d",&n2);

         p2=f2/(1+i2*n2);

         printf("本金为%lf ",p2);

         break;

         default:

                   printf("请重新输入序号(1-2)");

                   goto CBJ;

         }

}

void Time()

{

         int j1,a;

    double  f1,f2,i1,i2,p1,p2,n1,n2;

    printf("1:复利计算时间 ");

    printf("2:单利计算时间 ");

         printf("请输入序号(1-2)");

CTime:

         scanf("%d",&a);

    switch(a)

         {

         case 1:

         printf("请输入目标金额");

         scanf("%lf",&f1);

         printf("请输入年利率");

         scanf("%lf",&i1);

         printf("请输入本金");

         scanf("%lf",&p1);

         printf("请输入复利次数");

         scanf("%d",&j1);

         n1=log(pow(f1/p1,1/j1))/log(1+i1/j1);

         printf("时间为%lf ",n1);

         break;

         case 2:

         printf("请输入目标金额");

         scanf("%lf",&f2);

         printf("请输入年利率");

         scanf("%lf",&i2);

         printf("请输入本金");

         scanf("%lf",&p2);

    n2=(f2/p2-1)/i2;

         printf("时间为%lf ",n2);

         break;

         default:

                   printf("请重新输入序号(1-2)");

                   goto CTime;

         }

}

void LL()

{

         int a;

         double f1,f2,i1,i2,p1,p2,n1,n2,j1;

    printf("1:复利计算利率 ");

    printf("2:单利计算利率 ");

         printf("请输入序号(1-2)");

CLL:

         scanf("%d",&a);

    switch(a)

         {

         case 1:

         printf("请输入目标金额");

         scanf("%lf",&f1);

         printf("请输入存款年限");

         scanf("%lf",&n1);

         printf("请输入本金");

         scanf("%lf",&p1);

         printf("请输入复利次数");

         scanf("%lf",&j1);

         i1=j1*(pow(pow(f1/p1,1/j1),1/n1)-1);

         printf("利率为%lf ",i1);

         break;

         case 2:

         printf("请输入目标金额");

         scanf("%lf",&f2);

         printf("请输入本金");

         scanf("%lf",&p2);

         printf("请输入存款年限");

         scanf("%lf",&n2);

         i2=(f2/p2-1)/n2;

         printf("利率为%lf ",i2);

         break;

         default:

                   printf("请重新输入序号(1-2)");

                   goto CLL;

         }

}

void DT()

   int b;

   double M,a,x,n;

   printf("1:月定基金投 ");

   printf("2:年基金定投 ");

   printf("请输入序号(1-2)");

CDT:

   scanf("%d",&b);

   switch(b)

   {

   case 1:

            printf("请输入每期定投金额");

            scanf("%lf",&a);

            printf("请输入收益率");

            scanf("%lf",&x);

            printf("请输入定投期数");

            scanf("%lf",&n);

            M=a*12*(1+x)*(-1+pow(1+x,n))/x;

       printf("预期收入为%lf ",M);

            break;

   case 2:

       printf("请输入每期定投金额");

            scanf("%lf",&a);

            printf("请输入收益率");

            scanf("%lf",&x);

            printf("请输入定投期数");

            scanf("%lf",&n);

            M=a*(1+x)*(-1+pow(1+x,n))/x;

            printf("预期收入为%lf ",M);

            break;

         default:

                   printf("请重新输入序号(1-2)");

                   goto CDT;

         }

  

}

void HK()

{

  int n,j;

         double i,p,f,y;

         printf("请输入贷款金额");

         scanf("%lf",&p);

         printf("请输入年利率");

         scanf("%lf",&i);

         printf("请输入还款年限");

         scanf("%d",&n);

         printf("请输入复利次数");

         scanf("%d",&j);

         f=p*pow((1+i/j),n*j);

         y=f/(n*12);

         printf("每月还款为%lf ",y);

}

void main()

{

         int m;

         printf("1:复利计算 ");

         printf("2:单利计算 ");

         printf("3:求本金 ");

         printf("4:求时间 ");

         printf("5:求利率 ");

         printf("6:基金定投 ");

         printf("7:每月还款 ");

         printf("请输入序号(1-7)");

CX:  

         scanf("%d",&m);

         if(m==1)

                   FL();

          else if(m==2)

             DL();

          else if(m==3)

                   BJ();

          else if(m==4)

                   Time();

          else if(m==5)

                    LL();

          else if(m==6)

                    DT();

          else if(m==7)

                    HK();

          else

          {  

                    

                   printf("请重新输入序号(1-7)");

             goto CX;

          }

}

 

原文地址:https://www.cnblogs.com/Rick00/p/5295983.html