複利計算3.0 #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\n",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\n",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\n",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\n",n);
flat=1;
break;
}
}
if(flat==0)
printf("在100年内沒有符合計息期數!\n\n");
}
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("|----------------------------------------|\n");
printf("| 1.複利計算 |\n");
printf("| 2.單利計算 |\n");
printf("| 3.計算本金 |\n");
printf("| 4.年限計算 |\n");
printf("| 5.利率估算 |\n");
printf("|----------------------------------------|\n");
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;
}
}