有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java、数组、方法

下面的方法调用在编译时出错。我不明白为什么会这样。我传递的参数与方法中定义的相同。请帮忙

_div女士(B[mid_i],mid_i); 迪夫女士(C[mid_j],mid_j)

代码从下面开始:

void ms_div(int[] A, int nbr)
        {
            if (nbr > 2) 
            {
                int mid_i = A.length / 2;
                int mid_j = A.length - mid_i;
                int[] B = new int[13];
                int[] C = new int[13];

                //create left hand array
                for(int i;i<=mid_i - 1;i++)
                {
                    B[i] = A[i];
                }

                //creating right hand array
                for(int i = 0,j=mid_i;i>= mid_j - 1;i++,j++)
                {
                    C[i] = A[j];
                }

                //Sort Left Hand Array
                if (mid_i >= 2)
                {
                    ms_div( B[mid_i], mid_i );
                }

                //Sort Right Hand Array
                {
                    ms_div( C[mid_j],mid_j );
                }
            }
    }

共 (2) 个答案

  1. # 1 楼答案

    在sort Left-Hand数组和sort Right-Hand数组中,必须将int值更改为Array。你应该用like

    ms_div( B, mid_i );
    

    ms_div( C, mid_i );
    
  2. # 2 楼答案

    在递归步骤中,将整数发送给ms_div。如果发送整个数组,它将编译

    所以

    ms_div( B[mid_i], mid_i );
    

    这样做:

    ms_div( B, mid_i );
    

    对于ms_div( C[mid_i], mid_i );调用也是如此