c ++获取TwoRandomNumbers,min和max

时间:2011-05-10 00:36:33

标签: c++

  

可能重复:
  C++ Random number homework question

伙计们,我需要帮助(是的,最后一分钟的家庭作业帮助)。我想编写一个名为getTwoRandomNumbers的函数,它使用两个参数来返回两个不同的随机数。该函数假设接受两个参数,指定随机数的最小值和最大值。

我需要编写数据验证代码,以确保永远不会返回两个相同的随机数。这是我到目前为止所做的:(任何方向都非常受欢迎)

好的,我做了更改,现在有了这个:

#include <iostream>
#include <iomanip>
#include <cmath>
#include <time.h>
using namespace std;

float getTwoRandomNumbers (int Min, int Max, int & number1, int & number2);

void main()
{
    cout << "The two random numbers are " << getTwoRandomNumbers << endl;
}

float getTwoRandomNumbers (int Min, int Max, int & number1, int & number2)
{
    int loopNumber, number;      
    for (loopNumber = 0; loopNumber <= 200 ; loopNumber ++)
    { 
        number = rand(); 
        if (loopNumber < 100 && number >= Min && number <= Max)
        {
            number1 = number;
        }

        if (loopNumber > 100 && number >= Min && number <= Max)
        {
            number2 = number;
        }
        return number2;
   }
}

2 个答案:

答案 0 :(得分:2)

首先,您在正确的路径上通过函数的参数传回两个值。然后看起来你也试图通过函数返回获得第二个值。

由于您需要从函数中获取多个值,因此请忽略返回值,并使用传递的2个参数来获取返回值。

另外,试着想出你脑子里的问题,你想做什么?获得2个随机值,而number1不等于number2

这应该会让你在逻辑流程上有一个不错的开始,让随机数传回来。

答案 1 :(得分:1)

对你而言:当我重新格式化你的代码时,很明显你在for循环中得到了回报。这意味着getTwoRandomNumbers将始终在第一次迭代后返回。我99.99%肯定这不是你的想法。