• 复利计算(修改后)


     #include<stdio.h> 
     #include<math.h> 
     void List(); 
     void A(); 
     void B(); 
     void C(); 
     void D(); 
     void E();
     void F();
     void G();
     main() 
     { 
        int sel; 
        while(1)
        {
            List(); 
            printf("	请选择:"); 
            while(scanf("%d",&sel)!=1||sel<0||sel>7)//防止输入的是字符以及输入的数字不是整数0-7 
            { 
                 printf("	输入错误!!!
    
    	请重新选择:"); 
    			 while(getchar() != '
    ');        //  处理回车键
            } 
    
            if(sel==0)
            {
                printf("	欢迎下次再使用,谢谢!
    "); 
                break;
            }
             switch(sel){//选择1~7的功能 
             case 1: 
                 A(); 
                 break; 
             case 2: 
                 B(); 
                 break; 
             case 3: 
                 C(); 
                 break; 
             case 4:
                 D();
                 break;
             case 5:
                 E();
                 break;
             case 6:
                 F();
                 break;
    		 case 7:
    			 G();
    			 break;
            }
        }
     } 
      
     void List()//目录表 
     { 
         printf("	|--------------------------------------|
    "); 
         printf("	|               功能                   |
    "); 
         printf("	|--------------------------------------|
    "); 
         printf("	|                                      |
    "); 
         printf("	|           1.复利(一次支付)           |
    ");
         printf("	|           2.复利(多次等额支付)       |
    ");
         printf("	|           3.单利                     |
    "); 
         printf("	|           4.投入资金                 |
    "); 
         printf("	|           5.投入时间                 |
    "); 
         printf("	|           6.利率                     |
    ");
         printf("	|           7.每月等额本息还款         |
    ");
         printf("	|           0.退出                     |
    "); 
         printf("	|                                      |
    "); 
         printf("	|--------------------------------------|
    "); 
     } 
     void A()//一次投入复利计算 
     { 
         int n;//时间n 
         double p,i,sum1;//总金额p,利率i,本利和sum1 
         printf("
    	*请输入存款金额:");
    	 while(scanf("%lf",&p)!=1||p<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入存款金额:"); 
                 getchar();   
    	 } 
         printf("	*请输入利率:"); 
         while(scanf("%lf",&i)!=1||i<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入利率:"); 
            getchar();    
    	 }  
         printf("	*请输入存储时间(年):"); 
         while(scanf("%d",&n)!=1||n<=0||n>100)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入存储时间(年):"); 
                 getchar();    
    	 } ; 
         sum1=p*pow((1+i),n);//复利的计算公式 
         printf("	**本利和为:%.2lf
    
    ",sum1);//输出复利计算的结果 
     } 
    void B()//多次等额支付复利计算
     { 
         int n;
         double p,i,sum2=0;
    	 char choose;
    	 printf("
    	多次等额投入方式:
    	1.等额多次月投
    	2.等额多次年投
    	*请选择:");
    	 while(scanf("%d",&choose)!=1||choose<1||choose>2)
    	 {
    		printf("	输入错误!!!
    
    	请重新选择:"); 
        	while(getchar() != '
    ');        
    	 }
    	 while(getchar() != '
    ');
    	 if(choose==1)
    	 {
    		printf("
    	*请输入月投金额:"); 
    		while(scanf("%lf",&p)!=1||p<=0)
    		{
    			printf("	输入错误!!!
    
    	*请重新输入月投金额:"); 
                getchar();   
    		} 
    		printf("	*请输入年利率:"); 
    		while(scanf("%lf",&i)!=1||i<=0)
    		{
    			printf("	输入错误!!!
    
    	*请重新输入利率:"); 
                getchar();    
    		}  
    		printf("	*请输入存储时间(年):"); 
    		while(scanf("%d",&n)!=1||n<=0||n>100)
    		{
    			printf("	输入错误!!!
    
    	*请重新输入存储时间(年):"); 
                getchar();    
    		} 
    		sum2=p*12*(pow(1+i,n)-1)/i;
    		printf("	**本利和为:%.2lf
    
    ",sum2);
    	 }
    	 else
    	 {
    		printf("
    	*请输入年投金额:"); 
    		while(scanf("%lf",&p)!=1||p<=0)
    		{
    			printf("	输入错误!!!
    
    	*请重新输入年投金额:"); 
                getchar();   
    		}  
    		printf("	*请输入年利率:"); 
    		while(scanf("%lf",&i)!=1||i<=0)
    		{
    			printf("	输入错误!!!
    
    	*请重新输入利率:"); 
                getchar();    
    		}  
    		printf("	*请输入存储时间(年):"); 
         	while(scanf("%d",&n)!=1||n<=0||n>100)
    		{
    			printf("	输入错误!!!
    
    	*请重新输入存储时间(年):"); 
                getchar();  
    		}
    		sum2=(p*pow((1+i),n)-1)/i;
    		printf("	**本利和为:%.2lf
    
    ",sum2);
    	 }
     } 
     
     void C()//单利计算 
     { 
         int n; 
         double p,i,sum3; 
         printf("
    	*请输入存款金额:"); 
         while(scanf("%lf",&p)!=1||p<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入存款金额:"); 
            getchar();   
    	 }  
         printf("	*请输入年利率:"); 
         while(scanf("%lf",&i)!=1||i<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入利率:"); 
            getchar();    
    	 }   
         printf("	*请输入存储时间(年):"); 
         while(scanf("%d",&n)!=1||n<=0||n>100)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入存储时间(年):"); 
            getchar();  
    	 } 
         sum3=p*(1+i*n); 
         printf("	**本利和为:%.2lf
    
    ",sum3); 
     } 
     void D() //投入资金
     { 
         int n; 
         double sum4,i,p;//p为投入本金 
         printf("
    	*请输入本利和:");
    	 while(scanf("%lf",&sum4)!=1||sum4<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入本利和:"); 
            getchar();   
    	 }   
         printf("	*请输入年利率:"); 
         while(scanf("%lf",&i)!=1||i<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入利率:"); 
            getchar();    
    	 }  
         printf("	*请输入存款时间(年):"); 
         while(scanf("%d",&n)!=1||n<=0||n>100)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入存款时间(年):"); 
            getchar();  
    	 }  
         p=sum4/(1+i*n); 
         printf("	**投入的本金为:%.2lf
    
    ",p); 
     }
     void E()   //投入时间
     {
         double n;
         double sum5,i,p;
         printf("
    	*请输入存储金额:");
         while(scanf("%lf",&p)!=1||p<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入存储金额:"); 
            getchar();   
    	 }   
         printf("	*请输入年利率:");
         while(scanf("%lf",&i)!=1||i<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入利率:"); 
            getchar();    
    	 }   
         printf("	*请输入本利和:");
         while(scanf("%lf",&sum5)!=1||sum5<=0)
    	 {
    		printf("	输入错误!!!
    
    	*请重新输入本利和:"); 
            getchar();   
    	 }   
         n=(log(sum5/p))/(log(1+i));
         printf("	**投入的时间为:%.0lf
    
    ",n);
     }
    void F()  //利率
    {
        double sum6,i,p,n;
        printf("
    	*请输入存储金额:");
        while(scanf("%lf",&p)!=1||p<=0)
    	{
    		printf("	输入错误!!!
    
    	*请重新输入存储金额:"); 
            getchar();   
    	}   
        printf("	*请输入存储时间(年):");
        while(scanf("%d",&n)!=1||n<=0||n>100)
    	{
    		printf("	输入错误!!!
    
    	*请重新输入存储时间(年):"); 
            getchar();  
    	} 
        printf("	*请输入本利和:");
        while(scanf("%lf",&sum6)!=1||sum6<=0)
    	{
    		printf("	输入错误!!!
    
    	*请重新输入本利和:"); 
            getchar();   
    	}   
        i=pow((sum6/p),(1/n))-1;
        printf("	**利率为:%.2lf
    
    ",i);
    }
    void G()
    {
    	double sum7,i,p,n;
    	printf("
    	*请输入贷款金额:");
        while(scanf("%lf",&sum7)!=1||sum7<=0)
    	{
    		printf("	输入错误!!!
    
    	*请重新输入本利和:"); 
            getchar();   
    	}   
        printf("	*请输入贷款时间(年):");
        while(scanf("%d",&n)!=1||n<=0||n>100)
    	{
    		printf("	输入错误!!!
    
    	*请重新输入贷款时间(年):"); 
            getchar();  
    	} 
        printf("	*请输入年利率:");
        while(scanf("%lf",&i)!=1||i<=0)
    	{
    		printf("	输入错误!!!
    
    	*请重新输入利率:"); 
            getchar();    
    	}   
    	p=sum7*i/(12*(1+i)*(pow(1+i,n)-1));
    	printf("	**每月等额本息还款为:%.2lf
    
    ",p);
    
    }
    
  • 相关阅读:
    .Net Core2.1 秒杀项目一步步实现CI/CD(Centos7.2)系列一:Docker入门
    在ASP.Net Core 中使用枚举类而不是枚举
    ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作
    Redis系列文章总结:ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁
    从源码中学习设计模式系列——单例模式序/反序列化以及反射攻击的问题(二)
    ASP.NET Core依赖注入——依赖注入最佳实践
    2019年第一天——使用Visual Studio 2019 Preview创建第一个ASP.Net Core3.0的App
    ASP.Net Core2.1中的HttpClientFactory系列二:集成Polly处理瞬态故障
    ASP.Net Core2.1中的HttpClientFactory系列一:HttpClient的缺陷
    Docker for .Net Developers(part1:Docker基本概念介绍)
  • 原文地址:https://www.cnblogs.com/mingyin/p/5339285.html
Copyright © 2020-2023  润新知