这是我在这个网站上的第一个问题。
无论如何,我正在制作一个程序,提示用户输入多少等级。然后提示用户输入0到100之间的等级并将它们存储在一个数组中。最后遍历数组以找到输入的最高等级并将其显示给用户。
我遇到的问题是我不知道如何遍历数组来比较数组中的两个索引。
import java.util.*;
public class HighestGrade {
public static void main(String[] args) {
//Declare and Initialize Arrays and Scanner
Scanner scan = new Scanner(System.in);
int num = 0;
int[] array1;
int highestgrade = 0;
//Prompt user on how many grades they want to enter
System.out.print("How many grades do you want to enter: ");
num = scan.nextInt();
array1 = new int[num];
for(int i = 0; i < array1.length; i++){
System.out.print("Enter grade out of 100: ");
array1[i] = scan.nextInt();
}
//Traverse the array to find the highest grade entered
for (int i = 0; array1[0] < array1[i]; i++){
System.out.print("Higher");
}
//Display the results to the user
System.out.print("The highest grade is " + highestgrade + ".");
//Close scanner
scan.close();
}
}
答案 0 :(得分:3)
要遍历数组,您可以使用循环。对于循环或while循环或执行while循环。
要遍历数组并跟踪最高值,您可以维护变量,并在每次迭代后更新它,如果遇到大于该值的值。
就代码而言......
int max = arr[0];
for ( int i = 0; i < arr.length; i++) {
if (arr[i] > max)
max = arr[i];
}
System.out.println("Largest is : "+max);
希望这会有所帮助.. !!
您还可以使用Recursion遍历数组。但不建议这样做会导致与堆栈相关的问题。
在没有遍历的情况下获得最高价值的另一种方法可以看作是这样的..
步骤1:按升序对数组进行排序
步骤2:最高值将在数组末尾,将其用作最高值
代码..
Arrays.sort(arr);
System.out.println("Highest Value is : "+arr[arr.length - 1]);
答案 1 :(得分:1)
要遍历数组,您需要像这样更改for循环:
for (int i = 0; i < array1.length; i++){
// do something with array1[i]
}
实际上你已经做了什么来填补它。只是做同样的事情来使用它的价值观。但是有另一种方法可以获得最高价值,您可以使用Arrays.sort:
Arrays.sort(array1); // sort values in ascending order.
System.out.println(array1[array1.length-1]); // get the element in the last position (the greatest)