Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;复利行使 我是一个初学C++的初学者,用“C++底漆加第六版”。_C++ - Fatal编程技术网

C++;复利行使 我是一个初学C++的初学者,用“C++底漆加第六版”。

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的投资价值,然后 显示当时

我在第五章,复习循环。不管怎样,我在做这本书中的编程练习时,问题是:

达芙妮以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++;
}而(cInvcout
dInv
为0。
cInv
也为0。is
0<0
,这是false,因此while循环退出。您可以通过以下方法解决当前问题:

while (cInv <= dInv) 

while(cInv cInv和dInv初始化为0,因此cInvmain
之前定义了
Chleo
Daphne
,则不需要任何转发。)-声明。@重复数据消除程序我设置了导致水平滚动的行的格式,这是我的错误。我一直使用前向声明,因为这是这本书到目前为止一直在宣扬的内容,但谢谢你的提示。@Lameste:前向声明是一件好事,但如果你把d定义到同一个编译单元中。哇,我犯了一个愚蠢的错误。非常感谢。
while (cInv <= dInv)