返回值大于或等于m的数组A的第一个元素的索引

时间:2016-04-06 17:59:38

标签: java arrays oop if-statement for-loop

public class Accumulator {
    private int[] A;
    public Accumulator(int[] X) {
        A= new int[X.length];
        for (int i=0; i<X.length; i++){
            A[i] = X[i];
        }


        }
    public int getOverM(int m){
            for(int j=0; j<A.length;j++){
                if(m < A[j])
                {

                }

            }



        }
    public static void main(String args[]){ // you can use the main method to test your code

        int[] A = {2,4,3,5,8};

        int r=new Accumulator(A).getOverM(3); //change argument to test different cases
        System.out.println(r);
    }

}

嗨,我一直在研究这个问题已经很久了,我知道这似乎很容易但我只是无法理解它....我只能改变方法getOverM()中的代码,我无法编辑其他方法。 我想过使用if语句,但我只是不知道如何编写一个显示与m相比下一个最大索引号的代码。

问题:考虑以下Accumulator类,该方法缺少代码 &#39; getOverM(int m)&#39;。 getOverM应该返回数组A的第一个元素的索引 值大于或等于m。

如果A中的元素没有索引大于或等于m,那么该方法 应该返回-1。 例如,如果A是数组{2,4,3,5,8}那么 getOverM(3)将返回1 getOverM(2)将返回0 getOverM(7)将返回4 getOverM(20)将返回-1

(提示:数组A的长度由A.length给出)

插入方法getOverM的主体代码。

4 个答案:

答案 0 :(得分:1)

您可以像这样返回此索引。

public int getOverM(int m){
    for(int j=0; j<A.length;j++){
          if(m <= A[j]){
            flag=0;  
            break;
          }
          else flag=1;
    } 
    if(!flag)
      return j;
    else return -1;
}

答案 1 :(得分:0)

public int getOverM(int m){
            int index = -1;
            for(int j=0; j<A.length;j++){
                if(m <= A[j])
                {
                   index = j;
                   break;
                }
            }
            return index;
}

答案 2 :(得分:0)

首先,getOverM()应返回“index greater 或等于 m”,因此您需要<=

否则,您所缺少的只是返回语句:

public int getOverM(int m) {
    for(int j = 0; j < A.length; j++)
        if (m <= A[j])
            return j;
    return -1;
}

答案 3 :(得分:0)

我认为这就是你一直在寻找的东西

public int getOverM(int m){
        for(int j = 0; j < A.length; j++){
              if(m <= A[j]){            //if the current element is greater than or equal to m then return the index .
                 return j;        
              }
        } 
        return -1; // return -1 if the loop ends by not finding any element which is greater than or equal to m
    }