Img profile default
ralpi
  • 2016.4.14 19:13
  • 조회수 89
  • 답변수 1
Img profile default
ralpi
  • 2016.4.14 19:13
  • 조회수 89
  • 답변수 1

질문합니다

divisible 메소드는 int형 배열 array와 int divisor를 매개변수로 받습니다.
array의 각 element중 divisor로 나누어 떨어지는 값만 포함하는 새로운 배열을 만들어서 반환하도록 divisible에 코드를 작성해 보세요.

제가 질문의 요지를 잘못파악한것같은데
array 배열안에 들어가있는 각각의 값들이 divisor로 나누어떨어지는 지 물어보는 것으로 알고 아래와 같이 코드를 작성해보았습니다.
그 렇지만 컴파일에는 오류는 없으나 제출시 틀린답으로 나옵니다 .
그래서 질문드립니다..
어느 부분이 잘못되었는 지 캐치 부탁드리겠습니다.

Divisible
public class Divisible {
    public int[] divisible(int[] array, int divisor) {
        //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요.

    int a=0;
    for(int b:array){
    if (array[b]%divisor==0){
      a++;}
    }
    int[] ret=new int[a];
    a=0;
    for (int c:array){
      if (array[c]%divisor==0){
      ret[a]=array[c];
      a++;
       ;
      }}
        return ret;
    }
}
DivisibleExam.java
//아래는 실행을 위한 코드입니다. 수정하지 마세요.
public class DivisibleExam {
    public static void main(String[] args) {
        Divisible divisor = new Divisible();
    }
}
  • #자바 입문
  • #나누어 떨어지는 숫자 배열

1 답변

  • Gscxhpxkg5i74t30rimh
    정두식
    • 2016.4.14 19:40

    ret[a]=array[c];
    이 부분이 이상합니다.

    실행에서 오류가 발생하지 않나요? c는 array에 들어있는 값인데 그걸 인덱스로 사용해서 array의 값을 읽어오고 있으니까요. array에 1000같은 숫자가 들어있으면 index 에러가 발생하겠네요.
    for문을 사용하던 것 처럼 foreach문을 사용하셔서 발생하는 문제인 것 같습니다.

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.