我是新来的C++,我有一个排序有rand()函数生成的随机值的数组的问题。 数组长度为100,数值由0到9的随机数填充(0,1,2,3,4,5,6,7,8,9)。排序随机值数组由数值递增
我已经成功确定数组的值,但仍然失败时,我想基于它的值递增排序数组。由此,这意味着当我打印数组值时,它可能不会被它的索引排序,而是被它的值所排序。
像这样:
X [10] = 0;
X [1] = 1;
X [60] = 2; ...等等直到X [99] = ...
这里是确定值并对其进行排序的代码,我在这里有什么错误?请帮助..
int length= 100;
X = new int[length];
int i;
int j;
int temp;
//determining the array value
for (i = 0; i < length; i++) {
X[i] = rand() % 10;
}
//sorting
for (i = 0; i < length; i++) {
for (j = 0; j < length; j++) {
if (X[i] < X[j]) {
temp = X[j];
X[j] = X[i];
X[i] = temp;
}
}
}
//print the array
for (i = 0; i < length; i++) {
cout << "X[" << i << "] = " << X[i] << "\n";
Sleep(10);
}
以上代码将不打印排序按价值计算,其印刷而成的指数排序递增的阵列,而不是由它就像我上面所说的要值。
请递给我解决这个,
在此先感谢
如果这是一个任务或者有一个很好的理由让你写你自己的排序,你应该提到的是,在问题。否则,使用'std :: sort'。 – juanchopanza 2014-09-29 06:27:26
@juanchopanza它不是一个任务,它只是我想学习C++排序我的自我,但我得到了这个问题。我将对这个问题进行编辑 – codelop 2014-09-29 06:31:16
在开始排序之前,将值放入数组*中。 – molbdnilo 2014-09-29 06:33:53