int [] x = new int[10];
for(int i = 0; i<x.length;i++){
x[i] = kb.nextInt();
}
int max = x[0];
for(int i = 1;i<x.length;i++){
if(x[i]>max){
max = x[i];
}
}
int min = x[0];
for(int i = 1;i<x.length;i++){
if(x[i]<min){
min = x[i];
}
}
x [max] = x [min];
x [min] = x [max];
我想将最大值的索引更改为最小值的索引,但我需要实际索引而不是最大值,我该怎么做?
答案 0 :(得分:1)
您需要保留另一个变量,例如maxIndex
,以保存包含最大值的索引。然后,每次更新max
(或min
)时,都会使用用于检索该最大值的索引更新maxIndex
(或minIndex
)变量。
这就是你如何做到最大:
int [] x = new int[10];
for(int i = 0; i < x.length; i++){
x[i] = kb.nextInt();
}
int max = x[0];
int maxIndex = 0;
for(int i = 1; i < x.length; i++){
if(x[i] > max){
max = x[i];
// This is where you update the index
maxIndex = i
}
}
您可以应用相同的原则来保存最小变量的值
答案 1 :(得分:0)
以下应用程序将更改数组的minValue和maxValue索引
公共类示例{
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = kb.nextInt();
}
int maxIndex = 0;
int minIndex = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[maxIndex] < arr[i]) maxIndex = i;
else if (arr[minIndex] > arr[i]) minIndex = i;
}
int temp = arr[maxIndex];
arr[maxIndex] = arr[minIndex];
arr[minIndex] = temp;
for (int x : arr) System.out.print(x + "");
}
}