Answer:
In Java:
import java.util.Scanner;  
import java.util.Arrays;  
public class Main  {  
public static void main(String args[])  {  
Scanner input = new Scanner(System.in);
int row, col;  
System.out.print("Rows: ");    row = input.nextInt();
System.out.print("Cols: ");     col = input.nextInt();  
int[][] Array2D = new int[row][col];
 System.out.print("Enter array elements: ");
 for(int i =0;i<row;i++){    
     for(int j =0;j<col;j++){
         Array2D[i][j] = input.nextInt();  
     }     }
  
int[] maxarray = findmax(Array2D,row,col);
System.out.println("Row: "+(maxarray[0]+1));
System.out.println("Column: "+(maxarray[1]+1));
}  
public static int[] findmax(int[][] Array2D,int row, int col)  
{  
int max = Array2D[0][0];
 int []maxitem = new int [2];
 for(int i =0;i<row;i++){
     for(int j =0;j<col;j++){
         if(Array2D[i][j] > max){  
             maxitem[0] = i;
             maxitem[1] = j; }	}    }
  
return maxitem;  
}  
}
Explanation:
The next two lines import the scanner and array libraries
<em>import java.util.Scanner;  
</em>
<em>import java.util.Arrays;  
</em>
The class of the program
<em>public class Main  {  </em>
The main method begins here
<em>public static void main(String args[])  {  </em>
The scanner function is called in the program
<em>Scanner input = new Scanner(System.in);</em>
This declares the array row and column
int row, col;
This next instructions prompt the user for rows and get the row input  
System.out.print("Rows: ");    row = input.nextInt();
This next instructions prompt the user for columns and get the column input  
System.out.print("Cols: ");     col = input.nextInt();  
This declares the 2D array
int[][] Array2D = new int[row][col];
This prompts the user for array elements
 System.out.print("Enter array elements: ");
The following iteration populates the 2D array
<em> for(int i =0;i<row;i++){    </em>
<em>     for(int j =0;j<col;j++){
</em>
<em>         Array2D[i][j] = input.nextInt();  
</em>
<em>     }     }
</em>
This calls the findmax function. The returned array of the function is saved in maxarray  
int[] maxarray = findmax(Array2D,row,col);
This prints the row position
System.out.println("Row: "+(maxarray[0]+1));
This prints the column position
System.out.println("Column: "+(maxarray[1]+1));
The main method ends here
}  
The findmax function begins here
public static int[] findmax(int[][] Array2D,int row, int col)  
{  
This initializes the maximum to the first element of the array
int max = Array2D[0][0];
This declares maxitem. The array gets the position of the maximum element
 int []maxitem = new int [2];
The following iteration gets the position of the maximum element
 <em>for(int i =0;i<row;i++){
</em>
<em>     for(int j =0;j<col;j++){
</em>
<em>         if(Array2D[i][j] > max){  </em>
<em>             maxitem[0] = i; </em><em>-- The row position is saved in index 0</em><em>
</em>
<em>             maxitem[1] = j;  </em><em>-- The column position is saved in index 1</em><em>}	}    }
</em>
This returns the 1 d array
return maxitem;  
}