Auf Thema antworten

hallo, hab nen kleines problem mit multidimensionalen arrays, hoffe ihr könnt mir da weiterhelfen.

mein programm soll erst ein 2dimensionales array erstellen und danach mit befreundeten zahlen füllen.

befreundete zahlen sind sie dann wenn die summe der teiler eine zahl ergeben und die summe derer teiler die anfangszahl. der mathematische teil funktioniert super alledings bekomme ich entweder die zalen nicht ins array geschrieben, übergabe zur main funktioniert nicht oder die ausgabe in der main ist fehlerhaft. würde mich über hilfe freuen.


das ist das programm welches nur die zahlen ausgibt und das array befüllt?! und zurückgibt.

[code=Java]


import java.util.Scanner;


public class NewMain1

{

    public static void main(String[] args)

    {

                Scanner sc = new Scanner(System.in);

       

        System.out.println("Wie viele befreundete Zahlenpaare wollen Sie ausgegeben bekommen?");

        int n;

       

        n = sc.nextInt();

       

       //int[][] array = amicablePairs(n);

      

       

       

        for(int i=0; i<n;i++)

        {

            System.out.println();

            for(int j=0; j<2; j++)

            {

                //System.out.print(array[i] + " " + array[j]);

                System.out.print(i + " " + j);

                System.out.print("   ");

               

            }

        }


    }

   

    public static int[][] amicablePairs(int n)

    {

        int array[][]=new int[n][2];

       

       

       

        int zaehler= 0;       

        for(int x =2; x==x; x++)

        {

            int y=0;


            for(int z = 1; z <= x/2; z++)

            {

                if(x%z==0)

                {  

                    y=y+z;

                }    

            }


            int zaehler2 = 0;


            for(int z = 1; z <= y/2; z++)

            {

                if(y%z==0)

                {

                    zaehler2 = zaehler2+z;

                }

            }


            if(zaehler2==x)

            {

                if(x!=y && x<y)

                {

                    array[zaehler][0]=x;

                    array[zaehler][1]=y;

                   

                    System.out.println(x+" "+y);

                    zaehler++;

                    if(zaehler==n)

                    {

                        break;

                    }

                }

            }

        }


       

       

       

       

        return array;

    }

}


[/code]

hier bekomme ich diese ausgabe welche mir nur die position des arrays sagt welche momentan erreicht ist.

0 0   0 1  

1 0   1 1



hier die main wo anstatt nur der position des arrays das eigentliche array ausgegeben werden soll

[code=Java]

public static void main(String[] args)

    {

                Scanner sc = new Scanner(System.in);

       

        System.out.println("Wie viele befreundete Zahlenpaare wollen Sie ausgegeben bekommen?");

        int n;

       

        n = sc.nextInt();

       

       int[][] array = amicablePairs(n);

      

       

       

        for(int i=0; i<n;i++)

        {

            System.out.println();

            for(int j=0; j<2; j++)

            {

                System.out.print(array[i] + " " + array[j]);

                //System.out.print(i + " " + j);

                System.out.print("   ");

               

            }

        }


    }

[/code]


allerdings bekomme ich dort diese ausgabe:

[I@69b8b810 [I@69b8b810   [I@69b8b810 [I@5e3c58a9  

[I@5e3c58a9 [I@69b8b810   [I@5e3c58a9 [I@5e3c58a9



Oben