假设您使用以下原型
具有完全定义且正确的功能int randomBetween( int lowerBound, int upperBound );
返回下限和上限之间的随机数,包括在内。
编写一个使用randomBetween的主函数来生成介于1和10之间的1000个值。 生成值时,计算该值等于5的次数。 显示该值等于五的次数。 您的程序应该只输出一个数字(即,不要将cout语句放在循环中)。
这是我到目前为止所做的:
// Function Prototypes
int randomBetween( int lowerBound, int upperBound );
int main( )
{
int lowerbound, upperbound;
cout << "Enter the value for the lower bound: " ;
cin >> lowerbound;
cout << "Enter the value for the upper bound ( lower < upper ) : " ;
cin >> upperbound;
cout << "The random value between " << lowerbound << " and "<< upperbound
<< " is " << randomBetween << endl;
return EXIT_SUCCESS;
}
int randomBetween( int lowerBound, int upperBound )
{
int upperbound, lowerbound;
int randomBetween = rand() % (upperbound-lowerbound) + upperbound;
return randomBetween;
}
当我编译程序并输入下限和上限的值时,我得到了答案:00E9131B
答案 0 :(得分:3)
这样:
cout << "The random value between " << lowerbound << " and "<< upperbound
<< " is " << randomBetween << endl
应该是:
cout << "The random value between " << lowerbound << " and "<< upperbound
<< " is " << randomBetween(lowerbound,uppderbound) << endl
在randomBetween函数中,您不需要声明变量upperbound和lowerbound,因为它们已经传递给函数。
同样,将变量命名为函数名称也是不好的做法,因此您应该在randomBetween函数中重命名'randomBetween'变量。
您可能需要查看rand()函数的引用,因为randomBetween函数不会返回所需范围内的值:
http://en.cppreference.com/w/cpp/numeric/random/rand
我不确定你是否将它从你发布的内容中排除,但不要忘记包含'cstdlib'和'iostream'库:
#include<iostream>
#include<cstdlib>
using namespace std;
答案 1 :(得分:3)
替换此行
cout << "The random value between " << lowerbound << " and "<< upperbound
<< " is " << randomBetween << endl;
用这个
cout << "The random value between " << lowerbound << " and "<< upperbound
<< " is " << randomBetween(lowerbound, upperbound) << endl;
你正在做的是打印出功能地址。你需要用参数调用函数。
也改变了这个
int randomBetween( int lowerBound, int upperBound )
{
int upperbound, lowerbound;
int randomBetween = rand() % (upperbound-lowerbound) + upperbound;
return randomBetween;
}
到
int randomBetween( int lowerBound, int upperBound )
{
int randomBetween = rand() % (upperbound-lowerbound) + upperbound;
return randomBetween;
}
在功能
中不再需要重新声明参数答案 2 :(得分:0)
您的函数不使用参数
int randomBetween( int lowerBound, int upperBound )
{
int randomBetween = rand() % (upperBound-lowerBound) + upperBound;
return randomBetween;
}
用参数调用函数,
... << randomBetween(lowerbound, upperbound) <<endl;
答案 3 :(得分:0)
首先,您的C ++代码包含一些错误。看起来你返回了函数的地址。即使C ++中的函数没有参数,在调用时,也必须使用带括号的函数名称function()
。在您的情况下,它确实需要将参数需要正确地传递给它function(param0, param1, param2)
。
看起来你正在假设,因为你命名变量lowerbound
和upperbound
与它将被隐式传递的函数参数相同,但这不是C ++的工作方式。
但是,您可以将lowerbound
和upperbound
定义为全局变量,而不是让您的函数randomBetween()
采用任何参数。您可以通过定义外部函数的范围来设置全局变量
您还需要初始化所有变量。在定义时,只需将lowerbound
和upperbound
设置为0
。