JAVA中取2维数组并输出1维数组

发布于 2024-09-18 17:21:53 字数 1598 浏览 2 评论 0原文

我试图获取一个二维数组并通过一系列计算来运行它,以便将其转换为一维数组。但是,当我运行程序时,我不断收到这个长错误,

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

提前致谢!抱歉,我是编程新手。

I am trying to take a two-dimensional array and run it through a series of calculations in order to transform it into a one-dimensional array. However, when I run my program I keep getting this long error

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)

Here is what my code looks like:

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

Thanks in advance! Sorry I am new to programming.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

穿透光 2024-09-25 17:21:53

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

它为我编译并运行。当然不确定它是否给出了您想要的答案。

You can't specify the type when assigning to the values inside the for loop. In Java, variables are defined once with a specific type. That type can't be changed later on in the program, so it does not need to be specified. You also had a typo when defining advisor_score_scaled. Try this:

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

It compiles and runs for me. Not sure of course if it gives the answer you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文