0

このprog 4をコンパイルして配列内の数値を検索することはできません.. classはprogの最後の行でエラーを予期しました: obj.searchnumber(int arr1[],item);

import java.util.*; 
    public class Ans5
    {
      public void searchnumber(int arr[],int item){
          int low = 0;
          int high = arr.length-1;
          int mid;
          while (low <= high) {
            mid = (low + high) / 2;
            if (arr[mid] > item)               high = mid - 1;
            else if (arr[mid] < item)          low = mid + 1;
            else                            
                System.out.println("The searched item"+item+"is found in the array");
          }
      }

      public static void main(String args[]) {
          Ans5 obj= new Ans5();
          Scanner sc=new Scanner(System.in);
          int arr1[]={1,2,3,4,5,6,7,8,9};
          System.out.print("\fEnter the item u need to search: ");
          int item=3;//sc.next();
          obj.searchnumber(int arr1[],item); // here's the error shown at arr1[]
      }
    }
4

2 に答える 2

2

メソッド呼び出しでそのような配列を渡さないでください。次のように配列の名前を使用するだけです。

 obj.searchnumber(arr1, item);

int arr1[]form は、配列の宣言時に使用されるだけです。arr1それは単に新しい配列参照を作成し、それがタイプであると言いint []ます。一部のメソッド呼び出しなどでは使用できません。実際のarr1配列を参照するのは です。そして、この名前だけで配列にアクセスします。

于 2013-02-16T15:10:37.153 に答える
1
obj.searchnumber(int arr1[],item);
                  ^^^^^^^^^________________Can't declare a variable here. if ypu want to pass the array then simply name it as @Rohit said
于 2013-02-16T15:13:41.690 に答える