【发布时间】:2013-02-26 14:42:51
【问题描述】:
我正在研究一个简单的想法,即生成随机数(从 1 到 100)并使用 c++ 在控制台上打印它们,但问题是每次我运行程序时,它每次都会生成完全相同的数字,它是随机的, 单个数字不是重复的,而是每次都是相同顺序的随机数!
这是我的代码
// DigitDisplayer.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int max = 100;
int min = 1;
int range = (max - min) + 1;
int randnum;
bool nums[100];
for(int j = 0; j < sizeof(nums); j++)
{
nums[j] = false;
}
for(int i = 0; i < range; i++)
{
int randnum = (rand() % range) + 1;
if(nums[randnum] == false){
nums[randnum] = true;
cout<< randnum << "\n\n";
}
else {
int randnum = (rand() % range) + 1;
}
}
cout<< "DONE!!!\n\n";
system ("pause");
}
谢谢
【问题讨论】:
-
您应该在程序开始时使用
srand()初始化随机数生成器。 -
顺便说一句,如果您使用的是预编译头机制,那么您的想法是将 iostream 和 cstdlib 放在 stdafx.h 中,然后编译器可以在编译之间重用加载的头文件。
标签: c++ visual-studio