我希望我的程序能够排序"排序"一个数组到两个不同的数组。意味着每个大于或等于500的值都会转到数组值2。每个小于500的值都会转到数组值3。
我的问题是,无论我尝试它总是与显示的条件匹配的最后一个值。
for (int i = 0; i < values.length && i < noOfNumbers; i++)
{
if (values[i] >= 500)
{
for (int k = 0; k < numbersAbove500; k++)
{
values3[k] = values[i];
}
}
else
{
for (int j = 0; j < numbersAbove500; j++)
{
values2[j] = values[i];
}
}
}
典型输出
您希望数组包含多少个数字? 8
这些是随机数
877 338 741 119 20 853 235 786
这些是大于或等于500的数字:
786 786 786 786
以下是500以下的数字:
235 235 235 235
答案 0 :(得分:3)
您只需要一个循环。你的内心循环毫无意义。
int j = 0;
int k = 0;
for (int i = 0; i < values.length && i < noOfNumbers; i++) {
if (values[i] >= 500) {
values3[k] = values[i];
k++;
} else {
values2[j] = values[i];
j++;
}
}