复利单利计算的代码

1.客户说:帮我开发一个复利计算软件。

客户提出:

2.如果按照单利计算,本息又是多少呢?

3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?

客户又想:

4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 

  1 #include<stdio.h> 
  2 #include<math.h> 
  3 void meun(); 
  4 void captical_profit(int temp);
  5 void captica(int temp);
  6 void time(int temp);
  7  main() 
  8  { 
  9      int temp;
 10     char temp0,temp1;
 11      meun(); 
 12 lab:    printf("请选择种类:"); 
 13      scanf("%d",&temp);
 14     if(temp>0&&temp<6)   //判断输入是否正确
 15     { 
 16         while(1)  //循环选择
 17         {
 18         if(temp>0&&temp<4) 
 19             captical_profit(temp); //求本利和
 20         else if(temp==4)
 21             captica(temp);        //求本金
 22         else if(temp==5)
 23             time(temp);
 24         else if(temp==6) 
 25             return 0;     
 26         meun(); 
 27         printf("是否需要继续选择(y/n):"); 
 28         getchar();
 29         scanf("%c",&temp0);
 30         if(temp0=='y')
 31             goto lab;
 32         else
 33             break;
 34         }
 35     }
 36     else  //输入错误
 37     {
 38         printf("输入错误!

是否要重新输入(y/n):");
 39         getchar();
 40         scanf("%c",&temp1);
 41         if(temp1=='y')
 42             goto lab;
 43         else
 44             return 0;
 45     }
 46  } 
 47  //菜单
 48  void meun() 
 49  { 
 50      printf("*******************************
"); 
 51      printf("*       1 一次支付复利        *
"); 
 52      printf("*       2 等额多次支付复利    *
"); 
 53      printf("*       3 单利计算            *
");
 54     printf("*       4 投入的本金计算      *
");
 55     printf("*       5 计息期数            *
");
 56     printf("*       6 退出                *
");
 57      printf("*******************************
"); 
 58  } 
 59  void captical_profit(int temp) 
 60  { 
 61      int n; 
 62      double P,i,F; 
 63      printf("请输入期初金额:"); 
 64      scanf("%lf",&P); 
 65      printf("请输入利率:"); 
 66      scanf("%lf",&i); 
 67      printf("请输入计息期数:"); 
 68      scanf("%d",&n); 
 69     switch(temp)
 70     {
 71     case 1:
 72         F=P*(pow((1+i),n));     //一次支付复利计算
 73         break;
 74     case 2:
 75          F=(P*(pow((1+i),n)-1))/i; //多次等额复利计算
 76         break;
 77     case 3:
 78         F=P*(1+i*n);    //单利计算
 79         break;
 80     }
 81      printf("本利和为:%lf

",F); 
 82  } 
 83  //求本金
 84  void captica(int temp) 
 85  { 
 86      int n; 
 87      double P,i,F; 
 88      printf("请输入本利和:"); 
 89      scanf("%lf",&F); 
 90      printf("请输入年回报率:"); 
 91      scanf("%lf",&i); 
 92      printf("请输入计息期数:"); 
 93      scanf("%d",&n); 
 94      P=F/(pow((1+i),n)); 
 95      printf("本金为:%lf

",P); 
 96  }
 97 
 98 //求计息期数
 99  void time(int temp)
100  {
101      int n,flat=0; 
102      double P,i,F; 
103      printf("请输入本利和:"); 
104      scanf("%lf",&F); 
105      printf("请输入年回报率:"); 
106      scanf("%lf",&i); 
107      printf("请输入本金:"); 
108      scanf("%lf",&P); 
109      for(n=1;n<100;n++)    //穷举法求100年满足的计息期数
110     {
111         if((P*(pow((1+i),n)))>=F)
112         {
113             printf("计息期数:%d

",n);
114             flat=1;
115             break;
116         }
117     }
118     if(flat==0)
119         printf("在100年内没有符合计息期数!

");
120 
121  }
原文地址:https://www.cnblogs.com/qiuhuimin/p/5271071.html