2010-09-11 4 views
1

J'essaie de prendre un tableau à deux dimensions et de l'exécuter par une série de calculs afin de le transformer en un tableau à une dimension. Cependant, quand je lance mon programme que je continue à obtenir cette longue erreurPrise de tableau à 2 dimensions et sortie d'un tableau à 1 dimension dans 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) 

Voici ce que mon code ressemble à:

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]); 
       }  
    } 
} 

Merci à l'avance! Désolé, je suis nouveau à la programmation.

Répondre

4

Vous ne pouvez pas spécifier le type lors de l'affectation aux valeurs de la boucle for. En Java, les variables sont définies une fois avec un type spécifique. Ce type ne peut pas être modifié plus tard dans le programme, il n'a donc pas besoin d'être spécifié. Vous avez également eu une faute de frappe lors de la définition advisor_score_scaled. Essayez ceci:

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]); 
       }  
    } 
} 

Il compile et fonctionne pour moi. Pas sûr bien sûr si cela donne la réponse que vous voulez.

+1

pas besoin de -> ne doit pas. – Carlos

+0

Bon point @carlos. Edited ma réponse. –