import java.util.Scanner;
public class maxnuminarray {
public static void main(String[] args) {
int temp;
System.out.print("please insert the size for array:");
Scanner input = new Scanner(System.in);
int size = input.nextInt();
int[] nums = new int[size];
for (int i = 0; i < size; i ) {
System.out.print("please insert your desired nums:");
nums[i] = input.nextInt();
}
for (int i = 1; i < size; i )
for (int j = 0; j < size - i; j )
if (nums[i] > nums[i 1]) {
temp = nums[i];
nums[i] = nums[i 1];
nums[i 1] = temp;
}
System.out.print(nums[size - 1]);
}
}
盡管它獲取了陣列的所有值,但它仍然不列印陣列中最后一個 num 的最大數。
我得到的 size=5 的錯誤:
執行緒“main”中的例外:java.lang.ArrayIndexOutOfBoundsException:索引 5 在 maxnuminarray.main(maxnuminarray.java:15)處超出長度 5 的范圍
uj5u.com熱心網友回復:
讀入值后,像這樣遍歷陣列。
int max = Integer.MIN_VALUE;
for (int n : nums) {
max = Math.max(max, n);
}
uj5u.com熱心網友回復:
您正在嘗試使用不存在的索引獲取值。例如,在if (nums[i] > nums[i 1])。假設您總共有 3 個數字,您的陣列大小將為 3,但您的索引從 0 開始。
| 索引 0 | 索引 1 | 索引 2 |
|---|---|---|
| 5 | 10 | 21 |
如果你嘗試獲取i 1時i = 2得到錯誤,因為i = 3不存在。
此外,如果您試圖從陣列中獲取最大的數字,則只需遍歷陣列一次。
int[] nums = new int[]{1, 10, 3};
int max = nums[0];
for (int i = 1; i < nums.length; i )
if (max < nums[i])
max = nums[i];
或者您可以將集合與Integer[]陣列一起使用。
int max = Collections.max(Arrays.asList(num));
uj5u.com熱心網友回復:
如果您只是想在陣列中找到最大值,@Nouredine 的代碼應該可以解決問題。
您的代碼通過陣列一個接一個地比較連續的數字,并以冒泡排序的方式交換它們。
但是,如果您真的希望將陣列中的最大值移動到陣列中的最后一個位置,您可以使用這段代碼。您的代碼中的問題是您正在訪問大小為 5 的陣列中的第 5 個索引,其中只允許 0、1、2、3、4。
for (int i = 1; i < size; i )
if (nums[i - 1] > nums[i]) {
temp = nums[i - 1];
nums[i - 1] = nums[i];
nums[i] = temp;
}
}
uj5u.com熱心網友回復:
import java.util.Scanner;
public class maxnuminarray {
public static void main(String[] args) {
int temp;
System.out.print("please insert the size for array:");
Scanner input = new Scanner(System.in);
int size = input.nextInt();
int[] nums = new int[size];
for (int i = 0; i < size; i ) {
System.out.print("please insert your desired nums:");
nums[i] = input.nextInt();
}
int max = nums[0];
for (int i = 1; i < size; i )
if(max < nums[i])
max = nums[i];
}
System.out.println("Max " max);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/425107.html
上一篇:從字串中取出部分,如何?
