[英]Need to swap two elements in an array in java
import java.util.Scanner;
public class Swap {
public static void main(String[]args){
Scanner kb = new Scanner(System.in);
System.out.print("How many integers? ");
int size = kb.nextInt();
int[] values = new int[size];
System.out.println("Enter integers:");
for (int i = 0;i < size; i++){
values[i] = kb.nextInt();
}
int min = values[0];
for(int i = 0;i < values.length;i++){
if(values[i] < min){
min = values[i];
}
}
int max = values[0];
for(int i = 0;i < values.length;i++){
if(values[i] > max){
max = values[i];
}
}
}
}
我只是陷入了一件小事:我不知道如何提取最小值和最大值的位置,就像在它們的索引中那樣以便交換它們。 我本來是按照值[min]的方法嘗試過的,但是我想java不會幫助您這么多,這是可以理解的
當前,您將min
和max
存儲在計算結果中。 從OOD來看,這很不好,因為數組中的值可以同時更改,並為您提供無效的狀態。
而不是最小和最大,您應該存儲minIndex和maxIndex。 循環可能看起來像這樣:
int maxIndex = 0;
for(int i = 0;i < values.length;i++){
if(values[i] > values[maxIndex]){
maxIndex = i;
}
}
現在很容易交換它們:
int tmp = values[maxIndex];
values[maxIndex]=values[minIndex];
values[minIndex]=tmp;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.