在C++中生成六位数字

我有问题,应该生成六位数字的函数。这似乎是程序生成的数字,但他们总是以1 Six digit numbers在C++中生成六位数字

开始和多数民众,使问题的一部分:

void generateNumbers(int &len, int arr[]) { 

srand(time(0));

cout << "How many numbers to generate: ";

cin >> len;

if (len <= 0 || len > 100) {

cout << "\n Chose number between 1 - 100\n";

generateNumbers(len, arr);

} else {

cout << "\n\nThe numbers: \n";

for (int i = 0; i < len; i++) {

arr[i] = (rand() % 999999) + 100000;

cout << endl << arr[i];

}

}

}

我pobably知道兰特()%999999 + 100000是错误的但我尝试了不同的方式,并没有一个工作。提前致谢!

回答:

等式rand() % 900000 + 100000会给你正确的值,但是rand is considered harmful。

相反,我建议你使用vectormt19937。既然你已抓获你在len寻找数,你可以这样做:

vector<int> arr(len); 

generate(begin(arr), end(arr), [g = std::mt19937{std::random_device{}()}]() mutable { return g() % 900000 + 100000; });

Live Example

以上是 在C++中生成六位数字 的全部内容, 来源链接: utcz.com/qa/263788.html

回到顶部