user2755775
user2755775

Reputation: 29

How do I use a method to input an array in ascending and descending order?

import java.io.*;
import java.util.*;

    public class Grade

{//class
    public static void main (String [] args)
        {//main
            Scanner keyBoard = new Scanner(System.in);

        int [] gradeFreq = new int [101];`enter code here`
        int input = 0;
        System.out.print ("Enter next grade: ");
        input = keyBoard.nextInt();
        while(input >= 0){
                gradeFreq[input]++;
                System.out.print("Please enter next grade");
                input = keyBoard.nextInt();
                }
        System.out.print ("To show results in ascending order press 1... or 2 for descending");
        input = keyBoard.nextInt();

    switch(input){
        case 1: 
            printUp(gradeFreq);
            break;
        case 2: 
            printDown(gradeFreq);
            break;
                        }   
    public static void printUp(int[] array){
            System.out.print("Ascending");
            for(int i = 0; i < array.length; i++){
                    if(array[i] > 0)
                        System.out.printf("%5d\t%5d\n",i,array[i]);
                    }
                }
    public static void printDown(int[] array){
            System.out.print("Descending");
        for(int i = 0; i < array.length; i--){
                    if(array[i] > 0)
                        System.out.printf("%5d\t%5d\n",i,array[i]);
                    }
                }


        }//end of main
}//end of class

And i have this error.

Grade.java:37: error: illegal start of expression
    public static void printUp(int[] array){
    ^
Grade.java:37: error: illegal start of expression
    public static void printUp(int[] array){
           ^
Grade.java:37: error: ';' expected
    public static void printUp(int[] array){
                 ^
Grade.java:37: error: '.class' expected
    public static void printUp(int[] array){
                                     ^
Grade.java:37: error: ';' expected
    public static void printUp(int[] array){
                                          ^
Grade.java:44: error: illegal start of expression
    public static void printDown(int[] array){
    ^
Grade.java:44: error: illegal start of expression
    public static void printDown(int[] array){
           ^
Grade.java:44: error: ';' expected
    public static void printDown(int[] array){
                 ^
Grade.java:44: error: '.class' expected
    public static void printDown(int[] array){
                                       ^
Grade.java:44: error: ';' expected
    public static void printDown(int[] array){
                                            ^
10 errors

 ----jGRASP wedge2: exit code for process is 1.
 ----jGRASP: operation complete.

I am simply trying to use a method to display my array in ascending or descending order(depending on what the user chooses). When I compile the code i get about 10 errors all on the first line of each method. I have looked it up on google and I couldn't find anything useful. Please Help me out. ----jGRASP exec: javac -g Grade.java

Upvotes: 0

Views: 1523

Answers (1)

nachokk
nachokk

Reputation: 14413

You can't declare a method inside a method.

 public static void main(String args []){
    // your code here..
 } 

 public static void printUp(int[] array){
    System.out.print("Ascending");
    for(int i = 0; i < array.length; i++){
           if(array[i] > 0)
                System.out.printf("%5d\t%5d\n",i,array[i]);
    }
 }

 public static void printDown(int[] array){
     System.out.print("Descending");
     for(int i = 0; i < array.length; i--){
           if(array[i] > 0)
               System.out.printf("%5d\t%5d\n",i,array[i]);
     }
}

If you don't indent your code you'll never understand what you wrote. By the way i don't think that your printUp and printDown method is going to do what you want. First you have to sort the array i think.

Upvotes: 3

Related Questions