2017-03-10 1 views
-2

쉽지는하지만 필자는 물어야 만한다는 것을 알고있다. 이 방법을 쓰려면 어떻게해야합니까? 잘못했으나 찾을 수 없습니다. 이 코드는 메서드를 사용하여 배열을 역순으로 처리합니다.배열 용 메서드 작성하기

import java.util.Scanner; 
public class Test{ 
public static void main(String[] args) { 
     int i; 
     int size; 
     int array[] = new int[50]; 
     Scanner read = new Scanner(System.in); 
     System.out.println("Enter the size of the array"); 
     size= read.nextInt(); 
     System.out.print("Enter Array Numbers : "); 
     for(i=0; i<size; i++) 
     { 
      array[i] = read.nextInt(); 
     } 

    } 
    public static int arrayReverse(int array[]){ 
    int size; 
     for(int i = 0; i < size/ 2; i++){ 

     int c = array[i]; 
      array[i] = array[size - i - 1]; 
      array [size - i - 1] = c; 
     } 

     for(int k:array) 
     System.out.print(k + " "); 
    } 
} 
+0

디버깅 도움말 ('**이 코드가 작동하지 않는 이유는 무엇입니까? **')에는 원하는 동작, 특정 문제 또는 오류 및 문제를 재현하는 데 필요한 가장 짧은 코드 **가 포함되어야합니다. ** . ** 명확한 문제 성명 **이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve). – Biffen

+1

'size'는'arrayReverse()'에 값을주지 않습니다. – Biffen

+3

'size'를 시작하는 것은 쓸모가 없습니다. 50보다 큰 크기를 입력하면 '범위를 벗어난 색인'오류가 발생합니다. – Francisco

답변

-1

기능이 약간 같습니다.

public static int[] arrayReverse(int[] arr) { 
    int size = arr.length; 
    int invertedArr[] = new int[size]; 
    for(int i = 0; i<size; i++){ 
     inverterArr[i] = arr[size-1-i]; 
    } 
    return invertedArr; 
} 

참고 사항. 첫 번째 기능은 arr입니다. arr의 크기는 항상 50입니다. 당신은 매번 50이되도록 강제합니다. 따라서 size을 5로 설정하고 [1,2,3,4,5]의 숫자를 arr에 입력하면 arr은 실제로는 [1,2,3,4,5,0,0,0,0,0,0,....,0]입니다. 따라서 처음 5 자리 다음에 45가옵니다. 나는 다음 당신이 할 것을 권 해드립니다 : 주석에서 언급 한 바와 같이

int size = read.nextInt(); 
int array[] = new int[size]; 
+0

많은 오류가있었습니다 –

+0

invertedArr [] = new int [size]; 그것은 진술이 아닙니다. –

+0

@Ekin은 변수 선언을 놓쳤습니다. 이제 그것을 고쳐 썼습니다. – Francisco

0

방금 ​​역순으로 array을 인쇄 할. 당신은 이런 식으로 작업을 수행 할 수 있습니다

public static void main(String[] args) { 
    int i; 
    int size; 

    Scanner read = new Scanner(System.in); 
    System.out.println("Enter the size of the array"); 
    size = read.nextInt(); 
    int array[] = new int[size];//Set the size of the array when you definetely know it 
    System.out.print("Enter Array Numbers : "); 
    for (i = 0; i < size; i++) { 
     array[i] = read.nextInt(); 
    } 
    for(int j = size-1; j >= 0; j--){ 
     System.out.println(array[j]); 
    } 

} 
+0

하지만 무한으로 이동합니다 –

+0

sry가 코드를 편집했습니다. 'size -'를'j -'로 바꿔야 만했습니다 –

+0

예가 변경되어 작동했습니다 –

0

당신은 전역 및 정적에 변수를 선언하거나 함수 arrayReverse에 인수로 전달, 또는 기능 arrayReverse 메인에 int size = array[].length;

0

크기를 할 수 메서드가 arrayReverse 메서드에서 초기화되지 않을 수 있습니다. 로컬 변수 크기가 초기화되지 않았을 수 있습니다. 그리고 arrayreverse는 int의 결과를 반환해야합니다.