Java Sorting Students in Decreasing Order by Score

MoonBeam080680's Avatar, Join Date: Apr 2011
Newbie Member
I am trying to get this program to sort the students in decreasing order by their score. I keep getting an error message when I try to use SelectionSort. This is the error I receive.
C:\Users\Jen>javac Sort.java
Sort.java:36: selectionSort(int[]) in Sort cannot be applied to (int)
int sortOutput = selectionSort(scores[i]);
^
1 error

Here is the code I am using. Any help would be greatly appreciated.

Code:
import java.util.*;
public class Sort {
 public static void main(String[] args){
  //Create Scanner
  Scanner input = new Scanner(System.in);
  //Get the number of students
  System.out.print("Please enter the number of students: ");
  int numberOfStudents;
  String temp = input.nextLine();
  numberOfStudents = Integer.parseInt(temp);
  //Create Array
  int[] scores = new int[numberOfStudents];
  String [] names = new String[numberOfStudents];
  Scanner input2 = new Scanner(System.in);
  //Loops asking user to enter data
  for (int i = 0; i < names.length; i ++){
    System.out.print("Please enter a name: ");
    names[i] = input.nextLine();
    System.out.print("Please enter a score for the name: ");
    scores[i] = input2.nextInt();
   }
  System.out.println("Students Highest to Lowest");
  for (int i = 0; i < names.length; i++){
   String output = " ";
   output = names[i] + " score is " + scores[i] + "\n";
 
   System.out.println(output);
   int sortOutput = selectionSort(scores[i]);
  }
 
 }
 public static void selectionSort(int [] scores){
  for (int i = scores.length - 1; i >= 1; i--){ 
   //Find the max in the scores array
   int max = scores[0];
   int maxIndex = 0;
   for (int j = 1; j <= i; j++){
    if(max < scores[j]){
     max = scores[j];
     maxIndex = j;
    }
   }
     // Swap scores as necessary
   if (maxIndex != i){
    scores[maxIndex] = scores[i];
    scores[i] = max;
   }
  }
 }
}
0
ManzZup's Avatar, Join Date: May 2009
Skilled contributor
why are you making the selection sort?
the arrays of java contains the sort method
0
szilla211's Avatar, Join Date: Jul 2012
Newbie Member
the main thing i would say is you initialized 2 arrays in main but you are only passing one to selection sort. you need to pass names[] and scores[] to selection sort for it to work properly. also ur error comes from the fact that u are trying to stuff an array into a primitive type variable. i would delete that entirely.

lemme know if this helps