Java 使用meathod查找数组的平均值
我正在编写一个程序,显示数组的最大值、最小值和平均值 到目前为止,我有最大值和最小值的方法,但没有平均值的方法 我的代码:Java 使用meathod查找数组的平均值,java,arrays,methods,integer,average,Java,Arrays,Methods,Integer,Average,我正在编写一个程序,显示数组的最大值、最小值和平均值 到目前为止,我有最大值和最小值的方法,但没有平均值的方法 我的代码: class Test { public static void main(String[] args) { int[] arr = {5,12,-3,7,3,22,31,2,16,56}; System.out.println(minValue(arr)); System.out.println(maxValue(a
class Test
{
public static void main(String[] args)
{
int[] arr = {5,12,-3,7,3,22,31,2,16,56};
System.out.println(minValue(arr));
System.out.println(maxValue(arr));
System.out.println(avgValue(arr));
}// end of Main
// Array Methods
public static int minValue(int[] nums)
{
int minValue = nums[0];
for(int i=1;i < nums.length; i++){
if( nums[i] < minValue){
minValue = nums[i];
}
}
return minValue;
}
public static int maxValue(int[] nums)
{
int maxValue =nums[0];
for(int i=1;i < nums.length ;i++){
if( nums[i] > maxValue){
maxValue = nums[i];
}
}
return maxValue;
}
public static int avgValue(int[] nums)
{
int temp = 4;
return temp;
}
}// end fo class
类测试
{
公共静态void main(字符串[]args)
{
int[]arr={5,12,-3,7,3,22,31,2,16,56};
系统输出println(最小值(arr));
System.out.println(maxValue(arr));
系统输出打印LN(平均值(arr));
}//干管末端
//数组方法
公共静态int minValue(int[]nums)
{
int minValue=nums[0];
对于(inti=1;imaxValue){
maxValue=nums[i];
}
}
返回最大值;
}
公共静态int avgValue(int[]nums)
{
内部温度=4;
返回温度;
}
}//课程结束
现在,查找平均值的方法填充了一个始终返回“4”的占位符整数
如何编写消息来查找数组的平均值?这应该可以做到:
public static double avgValue(int[] nums)
int sum = 0;
for (int value : nums) {
sum += value;
}
return sum / nums.length;
}
一个简单的方法是:
public static double avgValue(int[] nums) {
int total = 0;
for(int i = 0; i < nums.length; i++) {
total = total + arr[i];
}
double average = total / (double) nums.length;
return average;
}
公共静态双平均值(int[]nums){
int-total=0;
对于(int i=0;i
这是正确的方法:
public static float avgValue(int[] nums)
{
float sum = 0.0f;
float avg = 0.0f;
for(int i=0; i < nums.length;i++){
sum += nums[i];
}
avg = sum/nums.length;
return avg;
}
公共静态浮点平均值(int[]nums)
{
浮动总和=0.0f;
浮动平均值=0.0f;
对于(int i=0;i
使用Java流
int[] data = {1,5,4,9,2,1,4,7,8};
IntSummaryStatistics s = Arrays.stream(data).summaryStatistics();
System.out.println("Average: " + s.getAverage());
System.out.println("Count: " + s.getCount());
System.out.println("Min: " + s.getMin());
System.out.println("Max: " + s.getMax());
System.out.println("Sum: " + s.getSum());
输出
Average: 4.555555555555555
Count: 9
Min: 1
Max: 9
Sum: 41
将数组相加成一个双精度数组。然后除以元素的数量,假设你想要平均值。如果总数是奇数,那么它就不会得到正确的答案。除法将是整数。
total/nums.length
是整数除法。将它赋给一个双精度
并不会使它成为浮点除法。实际上你是对的!谢谢你指出这一点,我完全忘记了。你的“技巧”以整数除法结束,这会产生错误的结果。为什么你显式地使用float
而不是double
?