java - 如何计算数组的平均值
问题描述
import java.util.*;
import java.lang.*;
public class MyClass
{
String[] getdata()
{
Scanner in=new Scanner(System.in);
System.out.print("Enter numbers to calculate their average (choose 5 to 10 numbers only : ");
String[] a=in.nextLine().split(" ");
return a;
}
double average(String[] num)
{
double avg;
int tot=0;
int[] numbers = new int[num.length];
int l=num.length;
for(int j=0;j<l;j++)
{
tot=tot+numbers[j];
}
avg=tot/l;
return avg;
}
void results(String[] arr,double avg)
{
int[] numbers1=new int[arr.length];
int ll=arr.length;
System.out.print("The average of the numbers ");
for(int i=0;i<ll;i++)
{
numbers1[i]=Integer.parseInt(arr[i]);
System.out.print(numbers1[i]+" ");
}
System.out.print("is ");
System.out.printf("%.2f",avg);
}
public static void main(String args[])
{
MyClass obj=new MyClass();
String[] x=obj.getdata();
double y=obj.average(x);
obj.results(x,y);
}
}
代码运行成功,但对于任何给定的输出,平均值显示为 0.00。
该代码接受整数,它们之间有空格并计算平均值并显示它
帮我修一下。谢谢
解决方案
您不会在方法numbers
内部初始化数组average()
。而不是tot=tot+numbers[j];
执行以下操作
tot = tot + Integer.parseInt(num[j]);
并且为了避免整数删除更改计算如果avg
到以下
avg = 1.0 * tot / l; //this will cast intermediate result of 1.0 * tot to double.
推荐阅读
- python - 如何保存保存在字典字典中的多个数据框?
- android - 我是初学者,我打算开发自己的应用程序,但我不知道如何在移动设备和网络上使用 1 个数据库
- java - JavaFX:用于放置矩形的嵌套 for 循环不起作用
- python - 创建什么数据类型?
- c++ - 提取角度和轴的信息
- amazon-web-services - 是否可以在 Cloudformation 中设置带有 VPN 连接的 AWS Transit Gateway?
- css - 绝对定位拆分标题和描述
- reactjs - 为什么 jest.isolateModules 没有按预期工作?
- c# - 如何在 appsettings.json 中指定必填字段?
- java - 如何在 Android Studio 中实现跟踪路由?