2013-11-24 6 views
1

히스토그램을 인쇄하려고하는데 문제가 생겼습니다. 나는 배열에 익숙하지 않기 때문에 누군가가 이것을 도울 수 있다면, 많은 도움이 될 것이다. 내 방법은 다음과 같습니다.히스토그램을 인쇄하는 방법은 무엇입니까?

public static void main(String[] args) { 
    randomIntArray(5); 
} 

public static int randomInt(int low, int high){ 
    int x= (int)(Math.random()*high)+low; 
    return x;  
} 

public static int[] randomIntArray(int n){ 
    int[] a = new int [n]; 
    for (int i = 0;i<a.length;i++){ 
    a[i]=randomInt (0,100); 
    } 

    System.out.println(printHist(a)); 
    return a; 
} 

public static int[] printHist(int[]a){ 
    int[] k = new int[11]; 
    int i=0; 
    while (i<=10) { 
    int counter = 0; 
    int h=0; 
    while(h<a.length) { 
     if (a[h] == i) { 
     counter++; 
     h++; 
     } 
     h++; 
    } 

    k[i] = counter; 
    i++; 
    } 

    return k; 
} 

출력은 다음과 같습니다.

[[email protected] 

나는 이것을하는 방식을 재고해야합니까, 아니면 간단한 수정이 있습니까?

+0

Arrays.toString(arrayObject)한다. –

+0

'System.out.println (Arrays.toString (printHist (a)))); ' –

+0

@ZouZou : 좋아, 다소 나아졌지만 지금은 [0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0] '으로 정의된다. –

답변

0

System.out.println(arrayObject) 당신이 생각하는대로하지 않습니다.

하면이 관련 문제의 해결 방법 중 하나 시도 : What's the simplest way to print a Java array? - 같은 체크 아웃`개체 #의 toString()`방식과 그것이 무엇을

+0

괜찮아요,하지만 지금은 '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'이됩니다. –

+0

위 코드를 읽었을 때, k [i] = counter'는 항상'0' 값을 할당합니다. 아마도'h Krease

관련 문제