我在编写控制台应用程序时无法创建一个简单的程序来解决退休金的数学方程式

时间:2011-08-25 00:38:38

标签: c++

有人可以帮助我吗? 我已经超过一个小时了,我无法让它工作。 这是在C++,我已经学习了一点但我还是新的......

int main()
{
 double rate, amount,time, S;

    cout << "Insert the time of the super: ";
    cin >> time;

    cout << "Insert the rate (as a decimal, eg 1% AKA 101% = 1.01): ";
    cin >> rate;

    cout << "Insert the amount $: ";
    cin >> amount;

    S =("amount * (rate ^ time - 1)", pow(rate,time));
    cin >> S;

    cout << "The total amount is: " << "S /(rate - 1)" << endl;

    system("PAUSE");
    return 0;
}

我没有得到编译错误,但我永远无法从中得到答案

2 个答案:

答案 0 :(得分:4)

你“永远不会得到结果”,因为你将S设置为pow的结果,并使用逗号运算符怪异,然后再用行

分配给它
cin >> S;

等着你输入另一个号码。

你有两个主要问题。以下是更新后的代码,其中包含对已更改部分的注释:

int main()
{
    double rate, amount,time, S;

    cout << "Insert the time of the super: ";
    cin >> time;

    cout << "Insert the rate (as a decimal, eg 1% AKA 101% = 1.01): ";
    cin >> rate;

    cout << "Insert the amount $: ";
    cin >> amount;

    S = amount * pow(rate, time - 1); // take away the quotes and don't make pow seperate

    cout << "The total amount is: " << (S /(rate - 1)) << endl; // do the calculation and output it

    system("PAUSE");
    return 0;
}

请注意,引号"like this"中的内容是字符串文字,因此"4 * 4"是一个字符串,但4 * 4(请参阅缺少引号)执行乘法,产生数字16

答案 1 :(得分:0)

我认为你不应该按照你的方式为S赋值。 S被声明为double,并且您最初正在为它指定一个字符串。当您输出结果时,您还将计算括在引号中。你应该简单地cout&lt;&lt; S /(rate-1); //没有引号或cout只会输出字符串