Java Sorting Students in Decreasing Order by Score

Discussion in 'Java' started by MoonBeam080680, Apr 17, 2011.

  1. MoonBeam080680

    MoonBeam080680 New Member

    Joined:
    Apr 17, 2011
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    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);
    ^
    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;
       }
      }
     }
    }
     
  2. ManzZup

    ManzZup New Member

    Joined:
    May 9, 2009
    Messages:
    278
    Likes Received:
    43
    Trophy Points:
    0
    Occupation:
    Production Manager:Software @ ZONTEK
    Location:
    Sri Lanka
    Home Page:
    http://zontek.zzl.org
    why are you making the selection sort?
    the arrays of java contains the sort method
     
  3. szilla211

    szilla211 New Member

    Joined:
    Jul 5, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    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 :)
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice