一个非常快速的问题我不得不问为什么以下不起作用。我是一名早期的程序员,因此我正在寻求帮助。
我正在尝试将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<<" ";
}
答案 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