在我能找到的所有其他情况下,这是由于代码不在方法中或括号不正确,但是我已经检查了所有这些。我的代码是这样的;
import java.util.*;
public class averages {
public static void main(String[] args)
{
//initializing
double mean = 0;
double deviation = 0;
int i = 0;
double dataset = new double[10];
double sum = 0;
double subdev = 0;
double subsum = 0;
double dev = 0;
//getting the numbers
for (i = 0; i <= 9 ; i++)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter a number");
dataset[i] = input.nextDouble();
}
//calling the function to get
avgarray(dataset[]);
System.out.println("Average is " + mean);
devequasion(dataset[]);
System.out.println("Deviation is " + subdev);
}
public static double avgarray(double[] arraydata)
{
sum = 0;
for (i = 0; i <= 9 ; i++)
{
sum += arraydata[i];
}
mean = sum / 10;
return mean;
}
public static double devequasion(double[] devdata)
{
subsum = 0;
for (i = 0; i <= 9 ; i++)
{
subsum += devdata[i]*devdata[i];
}
dev = math.sqrt((sum - avgarray(devdata[]))/ 9.0);
return dev;
}
}
一切看起来都正确,但错误不会消失。
最佳答案
你有很多问题,例如:
- 您对数据集的定义不正确。您创建一个 double 组,然后尝试将其分配给单个 double 值。
- 您传递
dataset[]
而不是dataset
。 avgarray
和devequasion
中有已使用但未声明的变量(mean
、sum
、subsum
,i
,dev
)。事实上,这些在main
中声明是不相关的。- 此外,因为它们仅在方法中使用,所以它们在
main
中是不必要的,当然,除了i
)。 - 您不导入
java.util.Scanner
用于数据输入。 - 数学包是
Math
,大写的M
。
如果您使用像 Eclipse 这样的 IDE,您会发现查看和修复这些问题要容易得多。对于初学者来说,这是${DEITY}-send
。
如果必须( headless 构建、兼容性等),请务必将代码注入(inject) javac
作为最后一步,但使用 IDE 进行初始开发 ,您会发现速度快得多。
这是一个纠正了所有语法问题的版本,并进行了一些其他细微的调整,例如删除了不必要的变量:
import java.util.Scanner;
public class testprog {
public static void main (String[] args) {
double[] dataset = new double[10];
for (int i = 0; i <= 9 ; i++) {
Scanner input = new Scanner (System.in);
System.out.println ("Enter a number: ");
dataset[i] = input.nextDouble();
}
System.out.println ("Average is " + avgarray (dataset));
System.out.println ("Deviation is " + devequasion (dataset));
}
public static double avgarray (double[] arraydata) {
double sum = 0;
for (int i = 0; i <= 9 ; i++)
sum += arraydata[i];
return sum / 10;
}
public static double devequasion (double[] devdata) {
double subsum = 0;
for (int i = 0; i <= 9 ; i++)
subsum += devdata[i] * devdata[i];
return Math.sqrt ((subsum - avgarray (devdata)) / 9.0);
}
}
如果是家庭作业,请不要逐字使用此内容,如果您认为您的教育 worker 没有积极在网络上搜索抄袭行为,那就太愚蠢了。
关于java - 为什么我在这里总是得到预期的 .class ?常见问题都不是罪魁祸首,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989582/