Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java函数输入双精度到数组不工作_Java - Fatal编程技术网

Java函数输入双精度到数组不工作

Java函数输入双精度到数组不工作,java,Java,Java代码要求用户输入他想要输入的分数,然后输入一个函数或方法将其放入数组,然后输入另一个方法以查找平均值 编译时没有错误,但是当我运行和我放的成绩数,但函数级崩溃,我习惯于在C++中编码,所以我可能缺少一些基本的java。 请谅解。 我希望在修理它时,告诉我我的错误是什么 package lab10ex8; import java.util.Scanner; public class Lab10ex8 { public static double[] gra

Java代码要求用户输入他想要输入的分数,然后输入一个函数或方法将其放入数组,然后输入另一个方法以查找平均值

<代码>编译时没有错误,但是当我运行和我放的成绩数,但函数级崩溃,我习惯于在C++中编码,所以我可能缺少一些基本的java。 请谅解。 我希望在修理它时,告诉我我的错误是什么

package lab10ex8;

import java.util.Scanner;

public class Lab10ex8 {
    

    
    public static double[] grades ( int n, double a [] ) {
        Scanner S = new Scanner(System.in);
        double grade=0;
        for(int i=0; i<n ; i++)
        {
            grade = S.nextDouble();
            a[i] = grade;
            
        }
        return a;
    }
    
    public static double average( double a[] ) {
        double average=0;
        double c;
        double sum=0;
        Scanner S = new Scanner(System.in);
        
        for(int i=0; i< a.length ; i++){
            
            c= a[i];
            sum = sum+c;
        }
        average = sum/a.length;
        return average;
    }

    public static void main(String[] args) {
        int n;
        System.out.println( "Enter the number of Grades : " );
        Scanner S = new Scanner(System.in);     
        n=S.nextInt();
        double a[] = null;
        grades(n,a);
        average(a);
        
        
    }
    
}
包装lab10ex8;
导入java.util.Scanner;
公共类Lab10ex8{
公共静态双[]等级(整数n,双a[]){
扫描仪S=新的扫描仪(System.in);
双级=0;

对于(int i=0;i您需要为数组a提供内存。 像这样:

double a[] = new double[n];

您需要为阵列a提供内存。 像这样:

double a[] = new double[n];

必须将双数组a初始化为双数组a[]=新双数组[n]:

public static void main(String[] args) {
    int n;
    System.out.println( "Enter the number of Grades : " );
    Scanner S = new Scanner(System.in);     
    n=S.nextInt();
    **double a[] = null;** => double a[] = new double[n];
    grades(n,a);
    average(a);
}

必须将双数组a初始化为双数组a[]=新双数组[n]:

public static void main(String[] args) {
    int n;
    System.out.println( "Enter the number of Grades : " );
    Scanner S = new Scanner(System.in);     
    n=S.nextInt();
    **double a[] = null;** => double a[] = new double[n];
    grades(n,a);
    average(a);
}

您在
main()
方法中将
a
初始化为null。您可能希望它是
double[n]
,不是吗?您所说的“崩溃”是什么意思?您得到了什么错误?@Mureinik错误是:线程“main”java.lang.NullPointerException在lab10ex8.lab10ex8.grades(lab10ex8.java:16)在lab10ex8.lab10ex8.lab10ex8.main中出现异常(Lab10ex8.java:43)您在
main()
方法中将
a
初始化为null。您可能希望它是
double[n]
,不是吗?您所说的“崩溃”是什么意思?您得到了什么错误?@Mureinik错误是:线程“main”java.lang.NullPointerException中的异常位于Lab10ex8.Lab10ex8.grades(Lab10ex8.java:16)在lab10ex8.lab10ex8.main(lab10ex8.java:43)上,为什么双a[n]不起作用?因此,数组在java中被视为对象,所以每个对象都需要分配一个内存,就像c++/c中的struct需要使用malloc()分配内存一样。为什么双a[n]不工作?所以,数组在java中被视为对象,所以每个对象都需要分配内存,就像c++/c中的struct需要使用malloc()分配内存一样。