仅对阵列分配的输出获取0

时间:2013-12-14 21:53:32

标签: java arrays sorting bounds out

我有一项任务,我需要为此问题编写代码。

编写一个程序,将键盘中的数字读入int []类型的数组中 您可以假设将有50个或更少的条目。 您的程序允许输入任意数量的数字50 输出是不同数组元素的两列列表 第二列是每个元素的频率列表 列表应在第一列中从大到小排序。

我目前正在打印阵列,但我得到两列50个零。有什么帮助吗?

ArraySort

import java.util.*;

public class ArraySort {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please enter the numbers for your array.");
        int[][] d = new int [2][50];
        int[] a = new int [50];
        int[] b = new int [50];
        int[] c = new int [50];
        for(int index = 0; index < 50; index++)
        {
            a[index] = keyboard.nextInt();
        }
        ArraySort object = new ArraySort();
        object.sort(a);
        object.duplicate(a, b);
        object.frequency(a, c);



        for(int index = 0; index < 50; index++)
        {
            b[index] = d[0][index];
        }
        for(int x = 0 ; x < 50; x++)
        {
            c[x] = d[1][x];
        }
        for(int column = 0; column < 2; column++)
        {
            for(int row = 0; row < 50; row++)
            {
                System.out.print(d[column][row]);
            }
        }
    }


    public int[] sort(int [] a)
    {
        int temp = 0;
        for(int x = 0; x < 49; x++)
        {
            for(int y = 0; y < 49; y++)
            {
                if(a[y] < a[y+1])
                {
                    temp = a[y];
                    a[y] = a[y+1];
                    a[y+1] = temp;
                }
            }
        }
        return a;
    }
    public int[] duplicate(int [] a, int[] b)
    {
        int y = 0;
        for(int x = 0; x < 49; x++)
        {
            if(a[x] != a[x+1])
            {
                a[x] = b[y];
                y++;
            }
        }
        return b;
    }
    public int[] frequency(int [] a, int [] c)
    {
        int y = 1;
        int z = 0;
        for(int x = 0; x < 49; x++)
        {
            if(a[x] == a[x+1])
            {
                y++;
            }
            if(a[x]!= a[x+1])
            {
                y = c[z];
                z++;
                y = 0;
            }   
        }
        return c;
    }
}

1 个答案:

答案 0 :(得分:1)

java中的索引从0开始,d[2][x]需要一个大小为[3][50]的数组