我试图制作一个Future值计算器,不允许使用power函数。计算未来价值的公式是未来值=本金*(1 +利率)^(期数)。现在你不能在C中使用^作为指数,所以我尝试使用基数和指数概念,这给了我最接近的预期但仍然不对的答案。它给了我一个价值,但它不是正确答案而且太大了。如果您需要更多信息,请询问。
试运行:
校长:1000 年费率:0.06 年数:5 未来价值为1338225577600000.000000
预期结果为$ 1338.23。
#include<stdio.h>
double FutureVal(double prin, double rate,int years);
int main()
{
double principal;
double annualRate;
int NumYears;
double result;
printf("Investment Calculator\n");
printf("=====================\n");
printf("Principal : ");
scanf("%lf",&principal);
printf("Annual Rate: ");
scanf("%lf",&annualRate);
printf("No of Years: ");
scanf("%d",&NumYears);
result = FutureVal(principal,annualRate,NumYears);
printf("The future value is $%lf \n",result);
return 0;
}
double FutureVal(double prin, double rate, int years)
{
int i;
double value = (prin * ( 1 + rate)) ;
double result = 1;
for (i = 0; i < years; i++)
{
result *= value;
}
return result;
}
答案 0 :(得分:0)
以下功能可以完成任务:
double FutureVal(double prin, double rate, int years)
{
int i;
double value = 1 + rate ;
double result = 1;
for (i = 0; i < years; i++)
{
result *= value;
}
result *= prin;
return result;
}
因为在公式中找到了它的数量
prin * ((1+rate)^years)
你正在做的是:
(prin*(1+rate))^years
这是输出错误的原因
PS:如果你想在你提到的小数点后只显示2位数,请使用:
printf("The future value is $%.2lf \n",result);
在函数调用后的main方法中