# help needed

• March 12th, 2010, 11:12 AM
The Lost Plot
help needed
ok so ive to hand this question in by the end of today 19:00

Here's the Q.Declare an array of 50 student numbers and fill it with integers between 1 and 1000.
Output all elements to the screen. Check if there are duplicates and if so output the index at which these duplicates occur. e.g. Student[21] = 444 Student[33] = 444

I know my problem is in the 3rd nested loop with the intiger i,

Code :

```class WS5bQ2 { public static void main(String args[]) { int grade[][] = new int[1][50]; for(int row=0; row<grade.length; row++)//loop to assingn values to the array { for(int col=0; col<50; col++)//controls the col { grade[row][col] = (int)(Math.random()*10000000%1000+1); } } for(int row=0; row<grade.length; row++)//output array to screen { for(int col=0; col<50; col++) { System.out.print(grade[row][col]+" "); } } System.out.println(""); for(int row =0; row<grade.length; row++)//nested loop to check for matching grades { for(int col = 1; col <grade.length; col++) { int i = 0; if(grade[row][i] == grade[row][col]) { System.out.println("Stundent "+i+ "= "+grade[row][i]+" Stundent "+col+"= "+grade[row][col]); } i++;   }//close second loop }//close 1st loop }//close main }//close class```

ive laso tried the 3rd nested loop this way

Code :

``` for(int i =0; i<=49; i++)//nested loop to check for matching grades { for(int col = 1; col <grade.length; col++) { if(grade[0][i] == grade[0][col]) { System.out.println("Stundent "+i+ "= "+grade[0][i]+" Stundent "+col+"= "+grade[0][col]); } }//close second loop }//close 1st loop```
• March 12th, 2010, 11:32 AM
helloworld922
Re: help needed
you're checking the lengths incorrectly. The .length field only returns the length for that dimension.

ex.

Code :

```int[][] myMatrix = new int[5][10]; System.out.println("there are " + myMatrix.length + " rows in the matrix."); System.out.println("there are " + myMatrix[0].length + " elements in row 0.");```

I also believe that there's no need for the multi-dimension arrays to be "rectangular".
Code :

```int[][] myMatrix = new int[5][]; myMatrix[0] = new int[6]; myMatrix[1] = new int[7]; System.out.println("their are " + myMatrix.length + " rows."); // 5 System.out.println("there are " + myMatrix[0].length + " elements in row 0."); // 6 System.out.println("there are " + myMatrix[1].length + " elements in row 0."); // 7```
• March 12th, 2010, 11:56 AM
The Lost Plot
Re: help needed
i dont really know what you mean rectangle,
ive got the array to output the matches but it always matches itself with itself aswell, can anyone show me how to reslove this problem
Code :

``` for(int i= 1; i<=49; i++)// checking for duplicate entry's in the array and out index of duplicate { for(int col = 0; col <49;col++) { if(grade[0][col] == grade[0][i]) { System.out.println("Stundent "+i+ "= "+grade[0][i]+" Stundent "+col+"= "+grade[0][col]); } }//close second loop }```
• March 12th, 2010, 03:13 PM
helloworld922
Re: help needed
A rectangular 2 dimensional array simply means that every row has the same number of elements. ex:

1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
1 2 3 4 5 6

this is rectangular because every row has 6 elements.

1 2 3
1 2 4 5 6 7
1 2 3
1 2 3 4
1 2 3 4 5

this isn't rectangular because there are rows with different number of elements. Anyways, the point I was trying to point out was that you were trying to get the length of the wrong thing.

Code :

``` for(int row =0; row<grade.length; row++)//nested loop to check for matching grades { [b]for(int col = 1; col <grade[row].length; col++)[/b] // this line is different { int i = 0; if(grade[row][i] == grade[row][col]) { System.out.println("Stundent "+i+ "= "+grade[row][i]+" Stundent "+col+"= "+grade[row][col]); } i++;   }//close second loop }//close 1st loop```
• March 16th, 2010, 03:55 AM
Faz
Re: help needed
Firstly you don't don't have a 3rd nested loop it's a for statement inside nested loop, just so you realise :P.

Secondly you just need a statement to prevent it from running when it's comparing the same one. You can make another if statement outside it but I would change your current one to:

Code :

` if(grade[row][i] == grade[row][col] && i != col)`

Have you gone through this sort of stuff yet?