2014-11-08 3 views
-3

배열을 오름차순으로 바꿔야하지만 어딘가에 잘못 가고 있습니다.java의 배열 요소를 순서대로 바꾸기

int n = Integer.parse.int(args[0]); 

을 사용하여 입력을 받고 있지만 작동하지 않습니다. 전체 코드는 다음과 같습니다.

package tech; 

import java.util.*; 
import java.io.*; 

public class Techgig { 
    public static int ta[]={1,12,5,111,200,1000,10,9,6,7,4}; 

    public static void main(String[] args) { 
     // TODO code application logic here 
     System.out.println("Amount Mark has:"); 
     int rs=50;//Integer.parseInt(args[0]); 
     //int a=0; 
     System.out.println(rs); 

     // for(int k=0;k<ta.length;k++) 
     //System.out.print("\t"+ ta); 
     int min,temp; 
     for(int i=0;i<ta.length;i++) 
     { 
      min=i; 
      // System.out.print("\t"+ ta[i]); 
      for(int j=i+1;j<ta.length;j++) 
      { 
       if(ta[i]<ta[min]) 
       { 
        temp=ta[i]; 
        ta[i]=ta[min]; 
        ta[min]=temp; 
       } 
       // System.out.print("\t"+ ta[i]); 
      } 
     } 

     for(int k=0;k<ta.length;k++) 
     { 
      System.out.print("\t"+ ta[k]); 
     } 
    } 
} 
+2

작동하지 않습니까? 이것은 너무 애매합니다. 정확한 오류 메시지 나 스택 추적 또는 관찰 된 동작과 원하는 동작을 포함하여 정확하게 문제를 기술하십시오. –

+0

가장 쉬운 방법은'Arrays.sort (ta);'입니다. – Henry

답변

1

당신은 대체해야하는 변수 내가 여기 J과 :

 if(ta[i]<ta[min]) 
     { 
      temp=ta[i]; 
      ta[i]=ta[min]; 
      ta[min]=temp; 
     } 
0

그 이유는 당신이 변수 min으로 할당 자체 인덱스 i 번째 '비교하고 따라서는 않을 것입니다 if 조건을 바꾸어 교환하십시오.

당신은 인덱스로 i와 j를 사용하여 둘 사이에 확인하여 다음과 같이이 문제를 해결할 수 : 비교

for(int i=0;i<ta.length;i++) 
{ 
    // System.out.print("\t"+ ta[i]); 
    for(int j=i+1;j<ta.length;j++) 
    { 
     if(ta[j]<ta[i]) 
     { 
      temp=ta[j]; 
      ta[j]=ta[i]; 
      ta[i]=temp; 
     } 
    // System.out.print("\t"+ ta[i]); 
    } 
} 
0

당신의 논리는 잘못된 것입니다. 아래 코드를 참조하십시오. 많은 논리를 적용하는 대신. 왜 아래와 같은 sort 메소드를 호출하지 않는가?

public static int ta[]={1,12,5,111,200,1000,10,9,6,7,4}; 

    // print all the elements available in array 
    for (int number : ta) { 
     System.out.println("Number = " + number); 
    } 
    // sorting array 
    Arrays.sort(ta); 
System.out.println("The sorted int array is:"); 
for (int number : ta) { 
    System.out.println("Number = " + number); 
}