[英]finding the index of the largest element in an array
我想編寫一個代碼,該代碼返回給定數組中最大元素的索引。 但是,當我嘗試編譯時,我收到一條似乎無法理解的消息。 盡管我已經完成了錯誤消息所說明的事情,但它始終告訴我要對其進行修復。 請幫助這個新手程序員!
public class largest {
int[] array = new int[10];
array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
array[4] = 500;
array[5] = 600;
array[6] = 700;
array[7] = 800;
array[8] = 900;
array[9] = 1000;
int index;
public static void main(String args) {
for (int i=0; i<10; i++) {
if (array[i] < array[i+1]) {
index = i + 1;
} else {
index = i;
}
i++;
}
System.out.println(index);
}
}
下面是編譯消息。
largest.java:3: error: ']' expected
array[0] = 100;
^
largest.java:3: error: ';' expected
array[0] = 100;
^
largest.java:3: error: illegal start of type
array[0] = 100;
^
largest.java:3: error: <identifier> expected
array[0] = 100;
^
對於所有索引,這種情況仍在繼續。
這種類型的初始化不能在方法之外進行:
array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
array[4] = 500;
array[5] = 600;
array[6] = 700;
array[7] = 800;
array[8] = 900;
array[9] = 1000;
要么將作業移到您的變更主目錄中,
int[] array = new int[10];
至
int[] array = {100,200,300,400,500,600,700,800,900,1000};
順便說一句,除了此編譯錯誤之外,您的代碼也沒有執行應有的功能。 它將拋出ArrayIndexOutOfBoundsException(因為當我達到9時array[i+1]
將超出范圍)。 為了找到最大元素的索引,您必須維護一個包含當前最大值的變量,並將其與數組的所有元素進行比較。
public static void main(String args) {
int max = array[0];
index = 0;
for (int i=1; i<10; i++) {
if (array[i] > max) {
index = i;
max = array[i];
}
}
System.out.println(index);
}
有一些更正:
public class largest { //move inside main() from here int[] array = new int[10]; array[0] = 100; array[1] = 200; array[2] = 300; array[3] = 400; array[4] = 500; array[5] = 600; array[6] = 700; array[7] = 800; array[8] = 900; array[9] = 1000; int index; //required default value //move inside main() till here public static void main(String args) { //missing [] symbol for (int i = 0; i < 10; i++) { if (array[i] < array[i + 1]) { index = i + 1; } else { index = i; } i++; } System.out.println(index); } }
您可以嘗試以下示例:
public class largest { public static void main(String[] args) { int[] array = { 345, 768, 95, 345, 678 }; //array with default elements int index = -1, high = array[0], i = 0; for (int e: array) { //loop in every element if (e > high) { //check for highest value index = i; //assign index of the highest value till now high = e; //assign the highest value till now } i++; //next index } System.out.println(index); //-1 if not found } }
public static void main(String[] args) {
int[] array = {100, 200, 300, 400, 500, 600, 700, 800, 900};
System.out.println(highestValue(array));
}
public static int highestValue(int[] arr) {
int index = 0;
int highestValue = Integer.MIN_VALUE;
for(int i = 0; i < arr.length; i++) {
int temp = arr[i];
if(temp > highestValue) {
highestValue = temp;
index = i;
}
}
return index;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.