C++;复利行使 我是一个初学C++的初学者,用“C++底漆加第六版”。
我在第五章,复习循环。不管怎样,我在做这本书中的编程练习时,问题是: 达芙妮以10%的单利投资100美元。也就是说,每年投资都会获得收益 原始投资的10%,或每年10美元: 利息=0.10×原余额 同时,Cleo以5%的复利投资100美元。也就是说,利息为5% 本期余额,包括以前增加的利息: 利息=0.05×当期余额 克莱奥第一年赚100美元的5%,第二年赚105美元 105美元,或5.25美元,依此类推。编写一个程序,计算需要多少年 Cleo的投资价值超过Daphne的投资价值,然后 显示当时两项投资的价值 下面是我为这个练习编写的代码,不过我没有得到好的结果。 编辑的代码:C++;复利行使 我是一个初学C++的初学者,用“C++底漆加第六版”。,c++,C++,我在第五章,复习循环。不管怎样,我在做这本书中的编程练习时,问题是: 达芙妮以10%的单利投资100美元。也就是说,每年投资都会获得收益 原始投资的10%,或每年10美元: 利息=0.10×原余额 同时,Cleo以5%的复利投资100美元。也就是说,利息为5% 本期余额,包括以前增加的利息: 利息=0.05×当期余额 克莱奥第一年赚100美元的5%,第二年赚105美元 105美元,或5.25美元,依此类推。编写一个程序,计算需要多少年 Cleo的投资价值超过Daphne的投资价值,然后 显示当时
#include <iostream>
#include <array>
double Daphne(int, double, double);
double Chleo(double, double);
int main() {
using namespace std;
int p = 100; //Principle
double i1 = 0.1; // 10% interest rate
double i2 = 0.05; // 5% interest rate
double dInv = 0; //Daphnes investment
double cInv = 0; // Chleos investment
int t=1; //Starting at year 1
double s1 = 0; //Sum 1 for Daphne
double s2 = 0; // Sum 2 for Chleo
s1 = p + 10; //Initial interest (base case after year 1) for Daphne
s2 = p + (i2*p); //Initial interest (base case after year 1) for Chleo
do{
dInv = Daphne(p, i1, s1);
cInv = Chleo(i2, s2);
t++;
} while (cInv < dInv);
cout << "The time taken for Chleos investment to exceed Daphnes was: "
<< t << endl;
cout << "Daphnes investment at " << t << " years is: " << dInv << endl;
cout << "Chleos invesment at " << t << " years is: " << cInv << endl;
system("pause");
return 0;
}
double Daphne(int p, double i, double s1) {
s1 = s1 + (p*i);
return s1;
}
double Chleo(double i, double s2){
s2 = s2 + (s2*i);
return s2;
}
#包括
#包括
双达芙妮(int,double,double);
双色球(双色球,双色球);
int main(){
使用名称空间std;
int p=100;//原理
双i1=0.1;//10%利率
双i2=0.05;//5%的利率
双dInv=0;//达芙妮投资
双cInv=0;//Chleos投资
int t=1;//从第1年开始
双s1=0;//达芙妮的和为1
double s2=0;//Chleo的和为2
s1=p+10;//达芙妮的初始利息(第一年后的基本情况)
s2=p+(i2*p);//Chleo的初始利息(第1年后的基本情况)
做{
dInv=Daphne(p,i1,s1);
cInv=Chleo(i2,s2);
t++;
}而(cInv coutdInv
为0。cInv
也为0。is0<0
,这是false,因此while循环退出。您可以通过以下方法解决当前问题:
while (cInv <= dInv)
while(cInv cInv和dInv初始化为0,因此cInvmain
之前定义了Chleo
和Daphne
,则不需要任何转发。)-声明。@重复数据消除程序我设置了导致水平滚动的行的格式,这是我的错误。我一直使用前向声明,因为这是这本书到目前为止一直在宣扬的内容,但谢谢你的提示。@Lameste:前向声明是一件好事,但如果你把d定义到同一个编译单元中。哇,我犯了一个愚蠢的错误。非常感谢。
while (cInv <= dInv)