2010-09-11 173 views
1

我想采取一个二维数组,并通过一系列计算运行它,以便将其转换为一维数组。然而,当我跑我的节目,我不断收到这个长的错误以2维阵列和输出1维阵列在JAVA

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Duplicate local variable raw_advisor 
    Syntax error on token "i", delete this token 
    Type mismatch: cannot convert from double to double[] 
    Syntax error on token "i", delete this token 
    Type mismatch: cannot convert from double to double[] 
    Duplicate local variable advisor_score 
    Syntax error on token "i", delete this token 
    Type mismatch: cannot convert from double to double[] 

    at Advisor_Score.main(Advisor_Score.java:16) 

这里是我的代码如下所示:

import java.lang.Math; 
public class Advisor_Score { 
    public static void main(String[] args){ 
     double l[] = {1}; 
     double k[] = {2,2}; 
     double m[] = {3,3,3}; 
     double All_users[][]={l,k,m}; 
     double sum[]={0,0,0}; 
     double [] raw_advisor=new double [3]; 
     double [] advisor_scored_scaled= new double [3]; 
     double []advisor_score= new double [3]; 
     for (int i=0;i<All_users.length;i++){ 
       for(int j=0;j<All_users[i].length;j++){ 
         sum[i]+=All_users[i][j]; 
       } 
       double raw_advisor[i]=(sum[i]-(3*All_users[i].length))/4; 
       double advisor_score_scaled[i]= 2.5*(1-Math.pow(Math.E, -.5*raw_advisor[i])); 
       double advisor_score[i] = (2.5 + advisor_score_scaled[i]); 
       System.out.println(advisor_score[i]); 
       }  
    } 
} 

提前感谢!对不起,我是编程新手。

回答

4

分配给for循环内的值时,不能指定类型。在Java中,变量是用特定类型定义的。该类型以后不能在程序中更改,因此不需要指定。定义advisor_score_scaled时,您还有一个错字。试试这个:

import java.lang.Math; 
public class Advisor_Score { 
    public static void main(String[] args){ 
     double l[] = {1}; 
     double k[] = {2,2}; 
     double m[] = {3,3,3}; 
     double All_users[][]={l,k,m}; 
     double sum[]={0,0,0}; 
     double [] raw_advisor=new double [3]; 
     double [] advisor_score_scaled= new double [3]; 
     double []advisor_score= new double [3]; 
     for (int i=0;i<All_users.length;i++){ 
       for(int j=0;j<All_users[i].length;j++){ 
         sum[i]+=All_users[i][j]; 
       } 
       raw_advisor[i]=(sum[i]-(3*All_users[i].length))/4; 
       advisor_score_scaled[i]= 2.5*(1-Math.pow(Math.E, -.5*raw_advisor[i])); 
       advisor_score[i] = (2.5 + advisor_score_scaled[i]); 
       System.out.println(advisor_score[i]); 
       }  
    } 
} 

它编译和运行我。当然不确定,如果它给出你想要的答案。

+1

不需要 - >一定不要。 – Carlos 2010-09-11 22:51:22

+0

好点@卡洛斯。编辑我的答案。 – 2010-09-11 23:00:22