我在完成家庭作业时遇到困难,而且我不太擅长正确编写代码,我可以理解它的工作原理,但是自己创建它很麻烦。我应该编写一个应用程序,该应用程序创建一个由1到100的10个随机数组成的数组,然后将它们打印出来。第二种方法而不是计算平均值,第三种方法显示低于该平均值的所有数字。我已经完成了前两部分,但是它只显示10个随机整数,不计算平均值,我的代码是这样;
import java.util.Random;
public class ArrayTest{
public static void main(String[] args){
Random random= new Random();
int numbers[]= new int[10];
for (int i = 0; i < 10; i++)
{
int number= random.nextInt(100);
System.out.println(number);
numbers[i]=number;
}
}
public static int average(int [] array){
int sum =0;
for (int i = 0; i < array.length; i++){
sum += array[i];
int finalAvr = array[i] /10;
}
return sum / 10;
}
}
我要去哪里错了,要温柔。
答案 0 :(得分:0)
第一个问题是您永远不会调用average()
方法:
Random random= new Random();
int numbers[]= new int[10];
for (int i = 0; i < 10; i++)
{
int number= random.nextInt(100);
System.out.println(number);
numbers[i]=number;
}
System.out.println(average(numbers));
对于第三种方法,您将需要遍历numbers
数组并显示小于平均值的数字。像这样:
public static void lowerNums(int average, int[] arr) {
//For each int in the array
for(int num : arr) {
//If the int is less than the average, print it out
if(num < average) {
System.out.println(num);
}
}
}
或使用流:
Arrays.stream(arr).filter(e -> e > average).forEach(System.out::println);
答案 1 :(得分:-1)
以下是在方法中使数组成为参数的方法:
public static void doStuff(int[] numbers){
//super awesome code
}
如果在另一个方法中有一个数组(称为数字),则可以通过键入doStuff(digits)
将其直接传递给doStuff()。就这么简单。
现在,提出您的问题。在您的第三个方法中,我认为您应该添加两个参数:数组和较早获得的平均值。另外,很难说出有多少个数小于平均值,我建议您使用arraylist而不是array。您可以稍后转换为数组。看这个:
public static int[] getSmallValues(int average, int[] numbers){
Arraylist<Integer> smallNumbers = new Arraylist<>();
for(int i: numbers){
if(i < average){
smallNumbers.add(i);
}
}
return ((int[]) smallNumbers.toArray());
}
我希望这会有所帮助。.编码愉快!