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是 type 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 回答