以下程序是Walter J Savitch的Absolute C ++的一个例子。我正在尝试运行此代码,但收到错误,但我无法弄清楚原因。这是用户定义函数的示例。函数round()
应该在舍入int
值后返回double
值
#include <iostream>
#include <cmath>
using namespace std;
int round (double number);
int main()
{
double doubleValue;
char ans;
do
{
cout << "Enter a double value: ";
cin >> doubleValue;
cout << "rounded that number is " << round(doubleValue) << endl;
cout << "Again?" << endl;
cin >> ans;
}while(ans == 'y' || ans == 'Y');
cout << "end of testing " << endl;
return 0;
}
int round(double number)
{
return static_cast<int>(floor(number + 0.5);
}
[1]:
http://i.stack.imgur.com/ABj8G.png 这是我得到的错误。
答案 0 :(得分:0)
起初,我不知道为什么你实现了round()函数,因为有一个round()函数是c。
其次,您已经错误地实现了round()函数。你需要这样的东西:
int round(double num)
{
return static_cast<int>(num+0.5);
}
答案 1 :(得分:0)
从您的错误回合已经在另一个文件中定义,使用新名称创建一个新文件并且它应该可以正常工作
int my_round (double number);
int main()
{
// ...
cout << "rounded that number is " << my_round(doubleValue) << endl;
// ...
}
int my_round(double number)
{
return static_cast<int>(floor(number + 0.5));
}