![](https://images2015.cnblogs.com/blog/809061/201603/809061-20160320181624599-2141700568.jpg)
#include<stdio.h> #include<math.h> double principal=0,mount=0; int year=0; int n=1; double rate; void meu() { printf("|----------------------------------------| "); printf("| 1.复利计算 | "); printf("| 2.单利计算 | "); printf("| 3.计算本金 | "); printf("| 4.年限计算 | "); printf("| 5.利率估算 | "); printf("| 6.等额定投 | "); printf("| 7.等额还款 | "); printf("|----------------------------------------| "); } void danli(){ printf("请输入的本金:"); scanf("%lf",&principal); printf("请输入年限:"); scanf("%d",&year); printf("请输入年利率:"); scanf("%lf",&rate); mount=principal+principal*rate*year; printf("本息为:%.2lf ",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 ",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 ",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); flat=1; break; } } if(flat==0) printf("在100年内没有符合计息期数! "); } 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(" 1:按年投资 2:按月投资 "); 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("输入有误!请重新输入 "); goto A; } printf("%d年后的总产值:%.4lf ",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 ",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; } } }