gamer8756
gamer8756

Reputation: 9

.class expected error when passing array to function

public class AssignmentChapter8
{
    public static void main(String[] args)
    {
        int randomNumbers[] = new int[100];
        int oddCount;
        int evenCount;

        for(int x = 0; x < randomNumbers.length; x++)
            randomNumbers[x] = (int)(Math.random() * 25);

        for(int y = 0; y < randomNumbers.length; y++)
            if(randomNumbers[y] % 2 > 0)
                oddCount += 1;
            else
                evenCount+=1;


        int oddNumbers[] = getOddNumbers(oddCount, randomNumbers[]);
        int evenNumbers[] = getEvenNumbers(evenCount, randomNumbers[]);

        System.out.println();
        System.out.println("The list of odd numbers is:");
        System.out.println();

        for(int a = 0; a < oddNumbers.length; a++)
            System.out.print(oddNumbers[a] + "\t");

        System.out.println();
        System.out.println("The list of even numbers is:");
        System.out.println();

        for(int b = 0; b < evenNumbers.length; b++)
            System.out.print(evenNumbers[b] + "\t");
    }
    public static int[] getOddNumbers(int oddCount, int randomNumbers[])
    {
        int oddNumbers[] = new int[oddCount];
        int counter = 0;

        for(int x = 0; x < randomNumbers.length; x++)
            if(randomNumbers[x] % 2 > 0)
            {
                oddNumbers[counter] = randomNumbers[x];
                counter++;
            }

        return oddNumbers;
    }
    public static int[] getEvenNumbers(int evenCount, int randomNumbers[])
    {
        int evenNumbers[] = new int[evenCount];
        int counter = 0;

        for(int x = 0; x < evenNumbers.length; x++)
            if(randomNumbers[x] % 2 < 1)
            {
                oddNumbers[counter] = randomNumbers[x];
                counter++;
            }

        return evenNumbers;
    }
}

I'm new to java and have been trying to create a program to generate 100 numbers and sort odds and evens. The program has even giving an .class expected error no matter what I do. Any help would be appreciated.

Upvotes: 0

Views: 920

Answers (3)

jlars62
jlars62

Reputation: 7383

As Peter Lawrey stated, you don't need the brackets on the function calls. There are also a few other compilation errors. First, it looks like you have a copy/paste error in the getEvenNumbers function. Inside the for loop oddNumbers should be evenNumbers.

You also need to initialize the ints oddCount and evenCount (probably to 0).

Upvotes: 0

rgettman
rgettman

Reputation: 178323

When referring to an array as a whole, don't use the [] with the variable name. Change

int oddNumbers[] = getOddNumbers(oddCount, randomNumbers[]);
int evenNumbers[] = getEvenNumbers(evenCount, randomNumbers[]);

to

int oddNumbers[] = getOddNumbers(oddCount, randomNumbers);
int evenNumbers[] = getEvenNumbers(evenCount, randomNumbers);

Upvotes: 0

Peter Lawrey
Peter Lawrey

Reputation: 533820

The [] is not needed in this line instead of

int randomNumbers[] = new int[100];
// and 
int oddNumbers[] = getOddNumbers(oddCount, randomNumbers[]);

write

int[] randomNumbers = new int[100];
// and
int[] oddNumbers = getOddNumbers(oddCount, randomNumbers);

The [] is part of the type, not the name.

Upvotes: 1

Related Questions