Java 3个方法中的1个出现数组索引越界异常
这应该是一个相当简单的家庭作业,但我已经花了一段时间在上面了。。。执行时,它应该只填充一个数组并找到平均值和标准偏差。我得到一个越界异常,但仅在ArrayDiviation方法中。任何指示都将不胜感激Java 3个方法中的1个出现数组索引越界异常,java,arrays,Java,Arrays,这应该是一个相当简单的家庭作业,但我已经花了一段时间在上面了。。。执行时,它应该只填充一个数组并找到平均值和标准偏差。我得到一个越界异常,但仅在ArrayDiviation方法中。任何指示都将不胜感激 import java.util.Scanner; import java.util.Random; public class StandardDeviation { //declare global variables final static int ELEMENTS = 100; p
import java.util.Scanner;
import java.util.Random;
public class StandardDeviation
{
//declare global variables
final static int ELEMENTS = 100;
public static void main(String [] args)
{
//declare variables
final int RANGE = 500;
int[] numList = new int[ELEMENTS];
Random rand = new Random();
//populate array
for(int count = 0; count < ELEMENTS; count++)
{
numList[count] = rand.nextInt(RANGE) + 1;
}
//call printArray
printArray(numList);
//call arrayAverage
double mean = arrayAverage(numList);
System.out.println("\nMean: " + mean);
//call arrayDeviation
double standardDeviation = arrayDeviation(numList, mean);
System.out.print("Standard deviation: " + standardDeviation);
} //end main
//output 10 elements per line
public static void printArray(int[] list)
{
final int ELEMENTS_PER_LINE = 10;
for(int count = 0; count < ELEMENTS; count++)
{
System.out.printf("%-4d", list[count]);
if ((count + 1) % ELEMENTS_PER_LINE == 0)
{
System.out.println();
}
}
}
//returns average as double
public static double arrayAverage(int[] list)
{
int sum = 0, count;
double average;
for(count = 0; count < ELEMENTS; count++)
{
sum = sum + list[count];
}
average =(double) sum / count;
return average;
}
//calculate and return standard deviation
public static double arrayDeviation(int[] list, double mean)
{
double sum = 0.0, standardDeviation;
int count;
for(count = 0; count < ELEMENTS; count++);
{
sum = sum + Math.pow((list[count] - mean), 2);
}
standardDeviation = Math.sqrt(sum / 2);
return standardDeviation;
}
} //end class
import java.util.Scanner;
导入java.util.Random;
公共类标准差
{
//声明全局变量
最终静态int元素=100;
公共静态void main(字符串[]args)
{
//声明变量
最终整数范围=500;
int[]numList=新的int[元素];
Random rand=新的Random();
//填充数组
for(int count=0;count
盯着这段代码看了大约10分钟,我不明白它为什么会出现异常
public static double arrayDeviation(int[] list, double mean)
{
double sum = 0.0, standardDeviation;
int count;
for(count = 0; count < ELEMENTS; count++); //This semicolon is your
//problem
{
sum = sum + Math.pow((list[count] - mean), 2);
}
公共静态双数组偏差(int[]列表,双平均值)
{
双和=0.0,标准差;
整数计数;
for(count=0;count
int[]list
长度是100吗?是的。以前,我用countArrayIndexOutOfBoundsException
。他只有一个导致问题的分号。这是编译错误分号dOesn没有给出ArrayOutOfIndex异常,但它导致了异常,因为count
仍然未定义,所以list[count]
为您提供异常,因为for
语句skipped@Luminous_Dev我猜你投了反对票?我用Netbeans验证了答案,它给出了均值和标准差,但我投了反对票?谢谢!