I am trying to create a program where the user enters a 2d array, and the program will find the highest value in the array, and output the value, and the associated row and column. I have created a method (called locatelargest) inside the class that goes through all the points in the 2d array, and sets aside the MaxValue. Then it returns the MaxValue. I get errors for ) and ] expected, illegal start of type, ; expected, and identifier expected. How can I get the method and program overall to work? Thank you for your time.
import java.util.Scanner;
public class Find {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print ("Enter the number of rows in the the array: ");
int numberOfRows = input.nextInt();
System.out.print ("Enter the number of rows in the the array: ");
int numberOfColumns = input.nextInt();
double[][] anarray = new double[numberOfRows][numberOfColumns];
System.out.println("Enter the array: ");
for (int i = 0; i < a.length; i++){
for (int j = 0; j < a[i].length; j++){
a[i][j] = input.nextDouble();
}
}
Location location = locatelargest(anarray);
System.out.println("The location of the largest element is "
+ location.maxValue + " at ("
+ location.row + ", " + location.column + ")");
}
}
class Location{
public double maxValue;
public int row;
public int column;
public static double[] locatelargest(double[r][c] array){
for (int r = 0; r < array.length; r++){
for (int c = 0; c < array[r].length; c++){
if (b[row][column] > maxValue){
MaxValue = array[row][column];
row = r;
column = c;
return MaxValue;
}
}
}
}
}
Update: I have the program running correctly. Here is my code.
import java.util.Scanner;
public class Big {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print ("Enter the number of rows in the the array: ");
int numberOfRows = input.nextInt();
System.out.print ("Enter the number of rows in the the array: ");
int numberOfColumns = input.nextInt();
double[][] array = new double[numberOfRows][numberOfColumns];
System.out.println("Enter the array: ");
for (int i = 0; i < array.length; i++){
for (int j = 0; j < array[i].length; j++){
array[i][j] = input.nextDouble();
}
}
Location location = new Location();
location.locatelargest(array);
System.out.println("The location of the largest element is "
+ location.maxValue + " at ("
+ location.row + ", " + location.column + ")");
}
}
class Location{
public static double maxValue;
public static int row;
public static int column;
public static double locatelargest(double[][] array){
for (int r = 0; r < array.length; r++){
for (int c = 0; c < array[r].length; c++){
if (array[r][c] > maxValue){
maxValue = array[r][c];
row = r;
column = c;
}
}
}
return maxValue;
}
}
Some basic issues to get you started:
Your method signature should be
public static double locatelargest(double[][] array)
to start. unless you are trying to return an array of the row and column which would be anint[]
You should have
You need to move your
return
statement outside of your loop. You need to declaredouble maxValue
(and don't capitalize the variable name)You also need to call this as
Location.locatelargest(array)
and the method name would conventionally belocateLargest
TL;DR: Sotirios is right. You need to go back and read the manual.