我是新手学习C++,我遇到了一个数组操作的问题。我有一个长度为100的X数组,我需要随机地填充X的值为整数1到10(1,2,3,4,5,6,7,8,9,10)。
我知道会有重复的数字,例如可能会出现10个1之类的情况,但这正是我想要的。
以下是我的代码:
X数组如下:
int X[100];
以下是我的代码片段:
int* X = NULL;
int* val = NULL;
int length1= 100;
int length2= 10;
X = new int[length1];
val = new int[length2];
int i;
int j;
for (i = 0; i < isi; i++) {
val[i] = i;
for (j = 0; j < length1; j++) {
if (j > i) {
X[j] = val[i];
} else {
X[j] = val[0];
}
cout << "X[" << j << "] = " << X[j] << "\n";
Sleep(1);
}
}
上面的代码使数组X从索引0到99的值为0,然后索引0到99的值为1,直到其他索引的值都是9。
这不是我想要的,我想要的是(如果不是随机的)索引0到9的值为0,然后10到19的值为1,一直到索引90到99的值为9。希望我的解释清楚。
我在stackoverflow上提出了一个问题: 如何使用1-1000(包括1和1000)的值创建一个长度为10000的数组?
但我自己还是解决不了我的问题。
请有人给我一个解决方案。
提前感谢您!
std::generate
和均匀分布。 - chris