#include<stdio.h> #include<math.h> double principal=0,mount=0; int year=0; int n=1; double rate; 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); } main(){ int num=0; printf("|----------------------------------------| "); printf("| 1.复利计算 | "); printf("| 2.单利计算 | "); printf("| 3.计算本金 | "); printf("| 4.年限计算 | "); printf("| 5.利率估算 | "); printf("|----------------------------------------| "); 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; } }