2010-09-11 84 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