将整数值从一个整数复制到另一个整数

时间:2015-02-20 21:25:28

标签: c++ c++11 random integer srand

一个非常快速的问题我不得不问为什么以下不起作用。我是一名早期的程序员,因此我正在寻求帮助。

我正在尝试将num1gen的值复制到ballno1的整数并输出它。

代码:

#include <iostream>
#include <stdlib.h>


using namespace std;

int main()

{
int ballno1 = 0;

srand(time(NULL));
int num1gen=(rand()%49+1);


ballno1 = ballno1 + num1gen;
cout<<ballno1<<" ";

}

3 个答案:

答案 0 :(得分:0)

我运行了你的代码,似乎每次,rand函数的输出都是49与49一致。你可以使用以下行获得预期结果:

int num1gen=((rand()%1000)%49+1);

当然,您可以选择任意数字,而不是1000。

答案 1 :(得分:-1)

num1gen复制到ballno1使用ballno1 = num1gen; - 非常简单。

PS:num1gen不是&#34;整数&#34;但是&#34;整数变量&#34;。整数是值。

答案 2 :(得分:-1)

这里有两个问题。首先,time(NULL)不会经常或非常地发生变化。如果您反复运行该程序,请不要期望它每次都会更改。其次,rand的大多数实现与您从中提取的前一个或两个随机数的种子非常相关。你应该丢掉你使用的rand的前几个电话。

或者更好的是,使用C ++ 11中内置的改进的随机数设施。 http://en.cppreference.com/w/cpp/numeric/random