2013-03-03 3 views
2

이것은 수업입니다. 나는 읽고 검색을 해왔으며, 모든 것이 java.util.Random을 사용하는 방법을 알려주고 있으며, 그 중 어떤 방식으로 작동 하는지를 이해하고 그것을 사용할 수 있기를 바란다. 하지만 내 임무는 구체적으로 말해서 (int) (Math.random * 번호)를 사용하여 배열에 적용 할 곳을 찾는 데 어려움을 겪고 있습니다. 내가 본 모든 것은 자바에서 추출한 임의적 인 것이다. 이것은 100 개의 임의의 정수 0-9를 생성하며 발생 횟수는 몇 번입니까? 누군가가 도움을 줄 수 있다면? 내 오류입니다 - "main"예외 java.lang.array 인덱스 범위에서 벗어남 : 10 그리고 분명히 내 코드에 뭔가 잘못되었습니다.배열에 임의의 숫자를 추가하는 방법

public class NumberOfTimes{ 

    public static void main(String[] args){ 

    int rand = (int)(Math.random() * 10); 
    int[] counts = new int [10]; 

    for(int i = 0; i < 100; i++){ 

     counts[i]++; 
    }//end for 

    System.out.println("number\t" + "occurence "); 

    for (int num = 0; num < counts.length; num++){ 

     System.out.println(num + "\t" + counts[num]); 
    }//end for 

    }//end main 

}//end NumberOfTimes 
+9

당신은 길이 10의 배열을 선언 한이 변경을 한 다음 –

+0

이 일관성을 사용합니다 ... 인덱스 (99)에 요소를 액세스하려는 및 코드 블록에 대한 논리적 들여 쓰기. 코드의 들여 쓰기는 사람들이 프로그램 흐름을 이해하도록 돕기위한 것입니다. –

+1

문제에 대한 설명을보다 명확하고 체계적인 방식으로 다시 말해주십시오. –

답변

1

int[] counts = new int[100]; 
for (int i = 0; i < counts.length; i++) { 
    counts[i] = (int) (Math.random() * 10); 
}// end for 
+0

예! 고맙습니다. 거의 항상 나를 던져주는 간단한 해결책입니다. – Lish

0

귀하의 배열은 10 개 항목을 보유 할 수 있으며, 루프에 두 개 이상의 10 두 가지 방법으로 해결할 수 있습니다 액세스 할 수 있습니다.

  • 하나는

    int[] counts = new int [100]; 
    
  • 또는 하나가 루프에 매수를 감소 배열의 길이를 늘립니다.

    for(int i = 0; i < 10; i++){ 
    
+0

숫자가 10보다 작고 매력처럼 작동하도록 코드를 변경했습니다. – Lish

+0

@Lish, 기꺼이 도와 드리겠습니다. – Starx

관련 문제