2017-02-22 8 views
-2

/*これは、生徒が生徒に隠されている「正しい関数」によって検証される関数を書くオンラインテストの質問です。私はmainメソッドの2つの関数の結果を比較したいと思います。 */別の方法のあるメソッドのローカル変数へのアクセス

import java.util.Arrays; 

    class SortArr 
    { 
    static int[] arr = new int[10]; 

public int[] sortin(int[] ans) 
{ 
     Arrays.sort(ans); 
     System.out.println(Arrays.toString(ans)); 
     return ans; 
    } 

    public int[] correctfunction(int[] sol) 
    { 
     Arrays.sort(sol);  
     System.out.println(Arrays.toString(sol)); 
     return sol; 
    } 

    public static void main(String[] args) 
    { 
     arr = new int[] {4,8,3,15,2,21,6,19,11,7}; 
     SortArr ob=new SortArr(); 
     ob.correctfunction(arr); 
     ob.sortin(arr); 

     if(Arrays.equals(ob.sol == ob.ans)) //non-static method //equals(Object) cannot be referenced from a static context 
//variable ob of type SortArr: cannot find symbol 
     System.out.println("correct"); 
     else 
     System.out.println("incorrect"); 
    } 
} 
+4

あなたのコードは読みにくいです。私はちょうど編集しました –

+2

@sᴜʀᴇsʜᴀᴛᴛᴀは非常に非常に丁寧です –

+0

編集の後、私はちょうどここにコードをダンプしたことに気付きました。 –

答えて

0

まずArrays.equals(parameter1, parameter2)それは2つのパラメータを取り、何をやったことは完全に間違っています。修正するには以下のコードを参照してください

public static void main(String[] args) 
    { 
     arr = new int[] {4,8,3,15,2,21,6,19,11,7}; 
     SortArr ob=new SortArr(); 
     int[] newSol = ob.correctfunction(arr); 
     int[] newAns = ob.sortin(arr); 

     if(Arrays.equals(newSol, newAns)) 
      System.out.println("correct"); 
     else 
      System.out.println("incorrect"); 
    } 
+0

これは私のために働く。ありがとう@Lumnous_Dev – user1622611

0

この関数は配列を返します。したがって、メソッドを呼び出すときに、返された配列を配列変数に保存してください! 私はあなたのコードに必要な変更を加えました。彼らはあなたのために働くことを望みます。

import java.util.Arrays; 

    class SortArr 
    { 

     int arr1[]; 
     int arr2[]; 
    static int[] arr = new int[10]; 

public int[] sortin(int[] ans) 
{ 
     Arrays.sort(ans); 
     System.out.println(Arrays.toString(ans)); 
     return ans; 
    } 

    public int[] correctfunction(int[] sol) 
    { 
     Arrays.sort(sol);  
     System.out.println(Arrays.toString(sol)); 
     return sol; 
    } 

    public static void main(String[] args) 
    { 
     SortArr s = new SortArr(); //make an object of your class 
     arr = new int[] {4,8,3,15,2,21,6,19,11,7}; 
     SortArr ob=new SortArr(); 
     s.arr1 = ob.correctfunction(arr); // save the returned array 
     s.arr2 =ob.sortin(arr); // save the returned array 

     if(s.arr1 == s.arr2) 

     System.out.print("correct"); 
     else 
     System.out.print("incorrect"); 
    } 
} 
+0

ありがとう@Vignesh Sriram – user1622611

関連する問題