【新手求教】java编了一段程序,数组调用方法返回值都为0,求解正确的方法

import java.util.*;
import static java.lang.System.out;
public class Array {
public static int getmax(int[]a){
int max=a[0];
for(int elem:a)
if(elem>max)
max=elem;
return max;
}
public static int getmin(int[]a){
int min=a[0];
for(int elem:a)
if(elem<min)
min=elem;
return min;
}
public static int getsum(int[]a){
int sum=0;
for(int elem:a)
sum=sum+elem;
return sum;
}
public static double getaverage(int[]a){
int sum=0;
for(int elem:a)
sum=sum+elem;
double average=sum/3;
return average;
}
public static void main(String[]args){
out.println("请输入三个整数");
int[]a=new int[3];
for(int elem:a)
elem=new Scanner(System.in).nextInt();
out.println("最大值="+getmax(a));
out.println("最小值="+getmin(a));
out.println("求和:"+getsum(a));
out.println("平均值="+getaverage(a));
}
}

你main函数那里那个for循环改成for(int i=0;i<3;++i)
a[i]=输入数。

 Scanner初始化一个就可以了。
for(int elem:a)
elem=new Scanner(System.in).nextInt();
通过for迭代器不能传入值,只能写
Scanner input = new Scanner(System.in);
for(int i=0;i<3;i++) a[i] = input.nextInt();

觉得你应该把main函数里的打印信息放到for循环的外面

另外
double average=sum/3;
这个可能不准确
double average=sum/(double)3;

参考这篇文章,java中for each只适用于遍历,不能改变其中的值
http://swiftlet.net/archives/1523

你那个main函数中的循环没有把值赋给数组而new出来的数组中的值都是0所以你求到的都是0