我在visual studio中的程序没有显示任何内容,我的代码出了什么问题?

时间:2016-01-15 05:47:10

标签: c++ visual-studio

我正试图找出我妹妹的数学问题。所以作为我自己的一个小项目,我正在尝试编写一个程序来解决问题。我们的目标是找出你成为百万富翁时的年龄。它看起来不错,但它不会产生任何东西。我甚至无法让cout在屏幕上打印任何东西。它出什么问题了?我正在使用c ++。

int _tmain()
{
    int age = 21, year = 1;
    double salary, salaryIncrease, amountSaved, interestEarned, 
        total, totalMed;
    salary = 38500, salaryIncrease = .10, 
        interestEarned = .045, amountSaved = .25, total = 0;    
    while (total < 1000000){
        if (year % 3 == 0){
            salary = salary * salaryIncrease + salary;
        }
        if (year = 10) interestEarned = .0525;
        totalMed = salary * amountSaved;
        total = (total + totalMed)*interestEarned;
        age++;
        year++;
    }
    cout << "Age = " << age << endl;
    cout << "Total = " << total << endl;
    cout << "hello?" << endl;
    return 0;
}

4 个答案:

答案 0 :(得分:1)

if ( year = 10 )

需要

if( year == 10 )

答案 1 :(得分:1)

year = 10)是一项任务,您应该做的是比较year == 10

if (year = 10)更改为if (year == 10)

你应该像这样初始化你的变量:

double salary = 38500, salaryIncrease = .10, amountSaved = .25, interestEarned = .045, 
total = .0, totalMed;

但我建议像这样写:

 double salary = 38500.0;
 double salaryIncrease = 0.10;
 double amountSaved = 0.25;
 double interestEarned = 0.045;
 double total = 0.0;
 double totalMed;

答案 2 :(得分:0)

正如已经指出的那样,如果(年= 10)需要if(年= = 10)。

另外,我不确定,关于你的逻辑。 在第一次迭代之后 - &gt; total = totalMed(是sal的1/4)* 0.045

因此,我的总数约为1%,约为385.

我们是否试图将此举转移到1000000?在,在哪种情况下,我们有一个非常长的while循环。可能,为什么你没有得到任何输出仍然正在处理的东西:)

答案 3 :(得分:0)

代码存在多个问题,例如实际分配给(year = 10)的{​​{1}}条件,并且已经多次注意到。这个问题只会引起错误的兴趣。

您不打印任何内容的主要原因是year永远不会达到目标。

它没有达到目标,因为你继续将total乘以[0,1]范围内的兴趣数字,并将结果用作新的总数。

如果我们有一些兴趣total和一笔本金额i,那么当利息复合时,我们会有pp + ip钱。在C ++术语中,(1 + i)pp = p * (1 + i)。获得的利息为p += p * i,我们将其添加到p * i

您正在更新p,如下所示:

total

如果 total = (total + totalMed)*interestEarned; 是0.0525之类的值,请考虑一下interestEarned中的值是什么:total变为其先前值加上{{1}之和的5.25% }。你必须在这里重新考虑金融数学。

为了更好地了解程序中发生的事情,请单步执行循环并在每一步检查变量的值。或者将一些输出语句放入循环体中,这些语句会转储某些循环变量的值。在每一步中,问问自己变量是否朝着合理的方向发展。

原样,你的程序在完成循环之前不会产生任何输出。如果循环从未完成,则没有任何输出。