将数组分配给另一个

时间:2014-03-24 22:13:39

标签: java arrays

有一些问题,为数组分配函数的返回值(这是一个数组)。

public static int[] calculeaza_P(int poli[], int n, int k, int p) {
    int P[] = new int[n];
    //calculam mesajul, P(0)....P(n-1) se obtin inlocuind in polinom cu valoare
    for (int i = 0; i < n; i++) {
        //initializare cu a0//elementul liber din polinom
        P[i] = get_unsemnificative_coef(poli, 0);
        //puterile i....i^k-1
        for (int j = 1; j < k; j++) {
            //P(x)=(a_1)*(i^1)+....(a_k-1)*(i^k-1)
            P[i] = P[i] + get_unsemnificative_coef(poli, j) * (int) Math.pow(i, j);
        }
        //modulo p
        P[i] = P[i] % p;

    }
    return P;
}

在我的主要方法中我有

 public static void main(String[] args) {
    int p = 7;// nr prim pe l biti, 2^l<=p<=2^(l-1)
    int poli[] = new int[]{2, 3, 4};//a_k-1......a1,a0 numere <p
    int k = poli.length;//lungimea sirului
    int s = 1;//nr erori de corectat
    int n = k + 2 * s;//nr de P(x), sau lungimea lui C'

    System.out.println("Polinomul initial:" + print_poly(poli));
    ////////
    //generarea P(x) si mesajului codificat
    System.out.println("De la dreapta la stanga, P(x):");

    int[] P = new int[n];
    P= calculeaza_P(poli[], n, k, p);

    for (int i = 0; i < P.length; i++) {
        System.out.print("P(" + i + ")=" + P[i] + " ");
    }
    System.out.println();
    System.out.println();
    // System.out.println("Mesaj initial corect: " + mesaj);
    //schimb 1 bit
    int poz = 2;
    //int mesajgresit = S_SchimbaBit(mesaj, poz);
    //System.out.println("Mesaj primit eronat: " + mesajgresit);
    System.out.println();
}

它告诉我.class当我尝试为P赋值函数时。我做错了什么?

2 个答案:

答案 0 :(得分:3)

你似乎犯了错别字。它应该是以下int[] P = new int[n];

答案 1 :(得分:1)

calculeaza_P的调用包含语法错误,应为

P= calculeaza_P(poli, n, k, p);

而不是

P= calculeaza_P(poli[], n, k, p);

另请注意,P的初始化是无用的,因为变量会在之后直接被calculeaza_P的结果覆盖。