Java 无法将数组传递给第二个方法
我的家庭作业有困难,我只是不太擅长正确地编写代码,我可以理解它是如何工作的,但自己创建它是一件困难的事。我应该写一个应用程序,创建一个从1到100的10个随机数的数组,然后打印出来。第二种方法计算平均值,第三种方法显示低于该平均值的所有数字。我已经完成了前两部分,但是它只显示了10个随机整数,没有计算平均值,我的代码是这样的Java 无法将数组传递给第二个方法,java,arrays,Java,Arrays,我的家庭作业有困难,我只是不太擅长正确地编写代码,我可以理解它是如何工作的,但自己创建它是一件困难的事。我应该写一个应用程序,创建一个从1到100的10个随机数的数组,然后打印出来。第二种方法计算平均值,第三种方法显示低于该平均值的所有数字。我已经完成了前两部分,但是它只显示了10个随机整数,没有计算平均值,我的代码是这样的 import java.util.Random; public class ArrayTest{ public static void main(String[] ar
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;
}
}
import java.util.Random;
公共类阵列测试{
公共静态void main(字符串[]args){
随机=新随机();
整数[]=新整数[10];
对于(int i=0;i<10;i++)
{
整数=random.nextInt(100);
系统输出打印项次(编号);
编号[i]=编号;
}
}
公共静态int平均值(int[]数组){
整数和=0;
for(int i=0;i
我哪里出了问题,请温和一点。以下是如何使数组成为方法中的参数:
public static void doStuff(int[] numbers){
//super awesome code
}
如果在另一个方法中有一个数组(称为digits),可以通过键入doStuff(digits)
将其直接传递给doStuff()。就这么简单
现在,回答你的问题。。在第三种方法中,我认为应该添加两个参数:数组和前面得到的平均值。另外,很难判断有多少数字小于平均值,我建议您使用arraylist而不是数组。以后可以转换为数组。看看这个:
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());
}
public static int[]getSmallValues(int平均值,int[]number){
Arraylist smallNumbers=新的Arraylist();
用于(int i:数字){
如果(i<平均值){
加上(i);
}
}
返回((int[])smallNumbers.toArray());
}
我希望这有帮助。。快乐的编码 下面介绍如何将数组作为方法中的参数:
public static void doStuff(int[] numbers){
//super awesome code
}
如果在另一个方法中有一个数组(称为digits),可以通过键入doStuff(digits)
将其直接传递给doStuff()。就这么简单
现在,回答你的问题。。在第三种方法中,我认为应该添加两个参数:数组和前面得到的平均值。另外,很难判断有多少数字小于平均值,我建议您使用arraylist而不是数组。以后可以转换为数组。看看这个:
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());
}
public static int[]getSmallValues(int平均值,int[]number){
Arraylist smallNumbers=新的Arraylist();
用于(int i:数字){
如果(i<平均值){
加上(i);
}
}
返回((int[])smallNumbers.toArray());
}
我希望这有帮助。。快乐的编码 第一个问题是,您从未调用
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));
或使用流:
Arrays.stream(arr).filter(e -> e > average).forEach(System.out::println);
第一个问题是您从未调用
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));
或使用流:
Arrays.stream(arr).filter(e -> e > average).forEach(System.out::println);
您从未调用
average
函数。您从未调用average
函数。