【发布时间】:2020-04-01 03:54:24
【问题描述】:
需要移动数组开头所有小于 1 的值(没有排序,需要没有第二个数组的解决方案)
例如:
START ARRAY: {-2.12, -3, 7.36, 6.83, -1.82, 7.01}
FINISH ARRAY: {-2.12, -3, -1.82, 7.36, 6.83, 7.01}
有我的解决方案,但效果不佳,因为最终我们收到:
FINISH ARRAY: {-2.12, -3, -1.82, 6.83, 7.36, 7.01}
小于 1 的值移动到数组的开头,但 4 和 5 个元素的顺序不正确
#include <iostream>
using namespace std;
int main() {
double arr[6] = {-2.12, -3, 7.36, 6.83, -1.82, 7.01};
cout << "Start array: " << endl;
for (int x = 0; x < 6; x++) {
cout << arr[x] << ", ";
}
int index=0;
double temp;
for (int i = 0; i < 6; i++) {
if (arr[i] < 1) {
temp=arr[i];
arr[i] = arr[index];
arr[index] = temp;
index++;
}
}
cout << endl << "FINISH ARRAY: " << endl;
for (int x = 0; x < 6; x++) {
cout << arr[x] << ", ";
}
return 0;
}
【问题讨论】:
-
如果不仅仅是关于解决方案,而是关于自己实现它,请尝试先学习如何使用调试器单步执行代码。然后,您可以随时判断哪里出了问题。
-
我知道如何使用调试器,但我使用的是动态数组,而 VS Code 调试器看不到数组值
-
我不敢相信。默认情况下,指针可能显示为值,但您应该能够展开它以显示其后面的元素。