在Java中确定用户提供的数组的最大值和平均值

在Java中确定用户提供的数组的最大值和平均值,java,arrays,max,mean,Java,Arrays,Max,Mean,我是一个新的编码,所以请对我放松。我试图使用两个单独的类(即xyz和一个单独的xyztester类)确定用户提供的数组的最大值和平均值。我已经进行了编码,但最大输出为0.0,平均输出比数组长度小一。这是我的代码- “xyz”类 有人能详细说明我做错了什么吗?我发现了两个问题:平均法 sum = sum + array.length; 应该是 sum = sum + array[k]; 其次,所有浮点计算都应该在浮点运算符之间进行。因此,最好在分割之前将数组长度之类的内容强制转换为两倍: do

我是一个新的编码,所以请对我放松。我试图使用两个单独的类(即xyz和一个单独的xyztester类)确定用户提供的数组的最大值和平均值。我已经进行了编码,但最大输出为0.0,平均输出比数组长度小一。这是我的代码-

“xyz”类


有人能详细说明我做错了什么吗?

我发现了两个问题:平均法

sum = sum + array.length;
应该是

sum = sum + array[k];
其次,所有浮点计算都应该在浮点运算符之间进行。因此,最好在分割之前将数组长度之类的内容强制转换为两倍:

double avg = sum / (double)array.length;

我建议您添加一个指定所用语言的标记。请看-似乎正在解决一个类似的问题谢谢你们。我忘了添加语言。我已经更新了标题和标签。你试过调试器了吗?对不起。我从未调试过任何程序。我不知道怎么做。我正在使用NetBeans 8.0。我应该遵循这个链接还是有更好的方法?谢谢当我做出您建议的更改时,我得到了“不兼容的类型:从double到int的可能有损转换”。此外,我使用的是double not float。我应该改成浮点还是有区别?double和float都是精度不同的浮点。请参阅编辑后的答案。再次感谢。我做了更改,平均输出现在与数组长度相同。。。。“运行:您想输入多少个数字?5请输入5个数字:1 2 3 4 5最大的数字是0.0这5个数字的平均值是5.0生成成功(总时间:4秒)”这里实际上不需要强制转换为双倍,因为编译器会自动执行此操作(sum是double类型,如果一个操作数是double,另一个是int,则int会自动升级为double)。
sum = sum + array[k];
double avg = sum / (double)array.length;