我需要练习语法。我有一个数字数组,其中有查找平均值、报告最高数字和报告最低数字的方法。为了报告最高/最低数字,我将对数组进行排序。 但首先我的问题是报告平均值。我认为如果我能理解那部分,那么最小/最大就不会有问题。我也尝试将其更改为 Driver.randomArray[].getAverage() 。
有什么建议吗?提前致谢。 ~ Crystal
错误代码:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: randomArray cannot be resolved to a type Class cannot be resolved to a type Syntax error, insert ". class" to complete Expression
at IntegerArray.main(IntegerArray.java:48)
它指的是我尝试从这条线调用平均值,
System.out.println(randomArray[].getAverage());
一、驱动类
import java.util.Arrays;
public class Driver {
private static final int MAX = 0;
public Driver(){
int[] randomArray = new int [MAX];
int sum;
final int MAX;
}
public int getAverage(){
for (int index = 0; index < MAX; index++){
int sum = 0;
int[] randomArray = null;
int average;
sum = sum + randomArray[index];
average = sum/MAX;
return average;}
}
public void sortArray(){
// sort the array from smallest to biggest
int[] randomArray;
Arrays.sort(randomArray);
System.out.println("The sorted array from smallest to biggest is:");
for (int number : randomArray) {
System.out.println( + number)}
}
public int getMin(){
int[] randomArray;
// find the lowest number
return randomArray[0];
}
public int getMax(){
int[] randomArray;
// find the highest number
return randomArray[MAX];
}
}
然后是我的主课:
<小时/> import java.util.Random;
import java.lang.reflect.Array;
import java.util.Arrays;
public class IntegerArray {
public static void main (String[] args) {
// set up the constant for the size of the array
final int MAX = 10;
int sum = 0;
int average = 0;
int[] randomArray = new int [MAX];
for (int index = 0; index < MAX; index++)
// values of the array go from 0-10
randomArray[index] = (int) (Math.random() *10);
// prints the array
for (int value : randomArray)
System.out.println (value);
System.out.println("The length of the array is: " + randomArray.length);
System.out.println(randomArray[].getAverage());
}
}
最佳答案
您创建方法的方式,例如。 getAverage() 您无法在您创建的数组上调用它。另一方面,您可以在您创建的驱动程序对象上调用它们。例如:
Driver driver = new Driver(); System.out.println(driver.getAverage());
如果您想在 Array 对象上调用它们,您应该将它们添加到 Array 类上(但这是比这更高级的 Java)。在 Java 代码中,您需要添加 ;声明后不要忘记它们;)。您的 IDE 应该警告您有关它们的信息。
当您创建 getMax() 方法时,您应该添加数组作为参数。这样该方法就知道它应该为哪个 Array 对象获取最大的数字。例如:
公共(public) int getMax(int[] randomArray) { //找到最大的数 返回随机数组[MAX]; }
这对您的所有方法都很重要。
我希望这能解决您的一些问题,如果不能,请添加评论或其他内容。
这是您之后的代码:
驱动程序类别:
import java.util.Arrays;
public class Driver {
private static final int MAX = 0;
public Driver() {
int[] randomArray = new int[MAX];
int sum;
final int MAX;
}
public int getAverage() {
int average = 0;
for (int index = 0; index < MAX; index++) {
int sum = 0;
int[] randomArray = null;
sum = sum + randomArray[index];
average = sum / MAX;
}
return average;
}
public void sortArray(int[] randomArray) {
// sort the array from smallest to biggest
Arrays.sort(randomArray);
System.out.println("The sorted array from smallest to biggest is:");
for (int number : randomArray) {
System.out.println(+number);
}
}
public int getMin(int[] randomArray) {
// find the lowest number
return randomArray[0];
}
public int getMax(int[] randomArray) {
// find the highest number
return randomArray[MAX];
}
}
IntegerArray 类:
public class IntegerArray {
public static void main(String[] args) {
// set up the constant for the size of the array
final int MAX = 10;
int sum = 0;
int average = 0;
int[] randomArray = new int[MAX];
for (int index = 0; index < MAX; index++)
// values of the array go from 0-10
randomArray[index] = (int) (Math.random() * 10);
// prints the array
for (int value : randomArray)
System.out.println(value);
System.out.println("The length of the array is: " + randomArray.length);
Driver driver = new Driver();
System.out.println(driver.getAverage());
}
}
<小时/>
回复评论中的问题:
您应该将 randomArray 作为 getAverage 方法的参数,以便该方法知道它应该在哪个数组上操作,例如:driver.getAverage(randomArray);
您的 getAverage 方法也有一些缺陷:
1. sum 变量应该位于循环之外,否则每次在循环内迭代时都会将 sum 设置为 0。
2.int[] randomArray = null;
您根本不应该真正执行此行,此行将创建一个新的 int 数组并将其值设置为 null,而您应该使用您提供的 int 数组作为参数。
所以你的 getAverage 方法变成:
public int getAverage(int[] randomArray) {
int sum = 0;
for (int index = 0; index < randomArray.length; index++) {
sum = sum + randomArray[index];
}
int average = sum / randomArray.length;
return average;
}
关于java - 使用驱动程序显示数组中的平均整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42742522/