
这里写的srand(seed)不是每次生成的数都一样吗?
而且这里生成一定范围的随机数的计算公式是不是出错了啊?
关注【以下回答由 GPT 生成】
在你提供的代码中存在一些问题:
1. 在RandomizeData函数中,计算随机数范围时出现了语法错误。应该是((maxValue - minValue) + 1)而不是((maxValue - minValue) + minValue;
2. 在Show函数中,缺少头文件和cout语句。应该在函数中添加头文件#include <iostream>和在合适的地方添加cout语句输出随机数值。
以下是修改后的代码:
#include <iostream>
#include <cstdlib>
void RandomizeData(int* a, int cnt, unsigned int seed, int minv, int maxv) {
srand(seed);
int u;
for(int i=0; i<cnt; i++) {
u = rand() % ((maxv - minv) + 1) + minv;
*(a+i) = u;
}
std::cout << std::endl;
std::cout << std::endl;
}
template<typename T>
void Show(T* a, int cnt) {
for(int i=0; i<cnt; i++) {
std::cout << *(a+i) << " ";
}
std::cout << std::endl;
}
int main() {
int data[5];
RandomizeData(data, 5, 1, -99, 100);
Show(data, 5);
return 0;
}
请根据以上修改,重新编译运行代码,应该可以正确生成随机数并输出指定范围内的随机数。