错误:void值不被忽略,因为它应该是和error:return语句带有值

时间:2016-04-22 21:33:47

标签: c++

我正在为我的编程类编写一个简短的代码,我无法弄清楚如何修复这两个错误:“void值不应该被忽略,因为它应该是”和“return语句带有值,在函数中返回'void'[ - f-permissive]“

#include <iostream>
#include <math.h>
#include <stdlib.h>
void FutureValue(double, double);
using namespace std;

int main(int argc, char** argv) {

    //Declare variables
    int amount;
    int newAmount;
    int interestRate;

    cout << "Please enter the dollar amount. " << endl;
    cin >> amount;

    cout << "Please enter the interest rate(e.g., nine percet should be entered as 9.0)." << endl;
    cin >> interestRate;

    newAmount = FutureValue(amount,interestRate);

    cout << "The new dollar amount is" << newAmount << endl;

    return 0;
}

void FutureValue(double initialAmount, double interestRate)
{

    //Declare variables
    double finalAmount;

    finalAmount = ( 1 + interestRate/100) * initialAmount;

    return(finalAmount);
}

第一个错误被指示在第42行,其中newAmount是。第二个是在第57行,其中return(FinalAmount)是。

非常欢迎任何有关此问题的帮助!

1 个答案:

答案 0 :(得分:1)

FutureValue中的以下行不正确,因为函数的返回类型为void

 return(finalAmount);

此外,该行

 newAmount = FutureValue(amount,interestRate);
由于同样的原因,main中的

不正确 - 函数的返回类型为void

将函数的返回类型更改为double

double FutureValue(double initialAmount, double interestRate)
{
   //Declare variables
   double finalAmount;

   finalAmount = ( 1 + interestRate/100) * initialAmount;

   return(finalAmount);
}

可以简化为:

double FutureValue(double initialAmount, double interestRate)
{
   return ( 1 + interestRate/100) * initialAmount;
}