java - java中的数据类型和计算平均值
问题描述
我正在研究一个 java 代码,它计算 N 个学生的数组中的平均成绩,当我输入像 {3,4,3} 这样的成绩但当我使用像 {3.7,2.5, 3.2} 它开始给我错误,例如,我想创建一个数据类型为 Student 的类。
import java.util.*;
public class ArrayAverageProblem {
public static void main(String[] args) {
System.out.println("Enetr number of students : ");
Scanner adnan = new Scanner(System.in);
int length = adnan.nextInt();
int[] input = new int[length];
System.out.println("Enter cgpa of students : ");
for (int i = 0; i < length; i++) {
input[i] = adnan.nextInt();
}
double averageCgpa = averageCgpa(input);
System.out.println("Average of students cgpa : " + averageCgpa);
adnan.close();
}
public static double averageCgpa(int[] input) {
double sum = 0f;
for (int number : input) {
sum = sum + number;
}
return sum / input.length;
}
}
任何帮助将非常感激。
解决方案
问题在于输入数组数据类型。如果输入数组也需要双精度值(带小数),则需要将输入数组作为双精度值。
请更改以下行
int[] input = new int[length];
和
double[] input = new double[length];
和下线
input[i] = adnan.nextInt();
和
input[i] = adnan.nextDouble();
它适用于两种类型的数字(带和不带小数)。
我希望这能解决您面临的问题。
推荐阅读
- c++ - 内联静态常量与静态常量变量
- google-api-nodejs-client - Google Drive v3 文件夹创建
- excel - If 语句公式破坏 VBA 循环代码
- javascript - pdfjs:使用正确的换行符/带空格从 pdf 获取原始文本
- selenium - 当我的断言通过时如何停止执行?
- angular - ionic3 中的深层链接:不要使用 Gmail 链接启动 ionic 应用
- c# - 从数据库中获取数据后如何多次提高排序列表的性能
- sql - 将 HTML 解析为 SQL Server 中的列
- sdk - VLC Vetinari(360 度视频).NET SDK
- java - 检查条件并在java中发送邮件