n维数组求每一行平均值的java代码
时间: 2024-05-05 08:19:15 浏览: 94
可以参考下面的Java代码:
```
public static double[] calculateRowAverages(double[][] arr) {
int n = arr.length;
int m = arr[0].length;
double[] averages = new double[n];
for(int i = 0; i < n; i++) {
double sum = 0;
for(int j = 0; j < m; j++) {
sum += arr[i][j];
}
averages[i] = sum / m;
}
return averages;
}
```
这个方法接收一个二维数组作为参数,返回一个包含每一行平均值的一维数组。可以将其它每一行的求和直接除以列数即可。
相关问题
用java解决一个二维数组中小组一个各科平均成绩和总成绩的平均值
在Java中,我们可以创建一个二维数组来存储每个小组学生的各科成绩,并计算每组的平均成绩和总成绩。这里是一个简单的示例:
首先,假设我们有一个二维数组`studentGrades`,它包含每个小组学生各科的成绩,比如每个元素表示`[语文, 数学, 英语]`的一行数据。每个小组的数据会被放在一个独立的列表里。
```java
int[][] studentGrades = {
{85, 90, 92}, // 小组1成员1的成绩
{78, 86, 94}, // 小组1成员2的成绩
... // 更多小组和成员的成绩
{...}, // 小组n成员1的成绩
};
List<List<Integer>> groups = Arrays.stream(studentGrades).collect(Collectors.groupingBy(Arrays.asList)); // 按照科目分组
double groupAverageScore;
double totalGroupScore;
for (Map<String, List<Integer>> group : groups) {
int sum = 0;
for (Integer score : group.values()) {
sum += score; // 计算总成绩
}
groupAverageScore = (double) sum / group.size(); // 计算平均成绩
System.out.println("小组 " + group.keySet() + " 的平均成绩是:" + groupAverageScore);
totalGroupScore += sum; // 统计所有小组的总成绩
}
// 所有小组的总成绩
totalGroupScore /= groups.size();
System.out.println("所有小组的总成绩平均值是:" + totalGroupScore);
java编程① 类ArraysApps,用于数组操作,包含下面4个方法: ★ int selMin(int[] arr1); //返回一维数组中的最小数 ★ void delete(int[] arr); //先对一维数组升序排序,再删除相同元素 ★ void insert(int[] arr,int le,int x); //先对一维数组arr(数组长度为len)升序排序,再插入元素x,并输出插入元素后的数组结果,以及所有元素的平均值(保留两位小数) ★ int[] arrSum(int[][] arr2); //求二维数组每一行的元素之和 ② 主类,用于声明一个一维数组、二维数组,并输入两个数组的元素的值,然后调用类ArraysApps的4个方法后得到相应的结果并输出
好的,以下是类ArraysApps和主类的示例代码实现:
```
//类ArraysApps
public class ArraysApps {
//返回一维数组中的最小数
public int selMin(int[] arr) {
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
//先对一维数组升序排序,再删除相同元素
public void delete(int[] arr) {
Arrays.sort(arr);
int[] temp = new int[arr.length];
int index = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i+1]) {
temp[index++] = arr[i];
}
}
temp[index++] = arr[arr.length-1];
for (int i = 0; i < index; i++) {
arr[i] = temp[i];
}
for (int i = index; i < arr.length; i++) {
arr[i] = 0;
}
}
//先对一维数组arr(数组长度为len)升序排序,再插入元素x,并输出插入元素后的数组结果,以及所有元素的平均值(保留两位小数)
public void insert(int[] arr, int len, int x) {
int[] temp = new int[len+1];
for (int i = 0; i < len; i++) {
temp[i] = arr[i];
}
temp[len] = x;
Arrays.sort(temp);
double sum = 0.0;
for (int i = 0; i < temp.length; i++) {
sum += temp[i];
}
double avg = sum / temp.length;
System.out.print("插入元素后的数组为:");
for (int i = 0; i < temp.length; i++) {
System.out.print(temp[i] + " ");
}
System.out.printf("\n所有元素的平均值为:%.2f", avg);
}
//求二维数组每一行的元素之和
public int[] arrSum(int[][] arr) {
int[] sumArr = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int sum = 0;
for (int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
}
sumArr[i] = sum;
}
return sumArr;
}
}
//主类
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//声明一个一维数组并输入元素的值
System.out.print("请输入一维数组的长度:");
int len = input.nextInt();
int[] arr1 = new int[len];
System.out.print("请输入一维数组的元素值:");
for (int i = 0; i < len; i++) {
arr1[i] = input.nextInt();
}
//声明一个二维数组并输入元素的值
System.out.print("请输入二维数组的行数:");
int row = input.nextInt();
System.out.print("请输入二维数组的列数:");
int col = input.nextInt();
int[][] arr2 = new int[row][col];
System.out.print("请输入二维数组的元素值:");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
arr2[i][j] = input.nextInt();
}
}
//调用类ArraysApps的4个方法并输出结果
ArraysApps aa = new ArraysApps();
System.out.println("一维数组中的最小数为:" + aa.selMin(arr1));
aa.delete(arr1);
System.out.print("删除相同元素后的一维数组为:");
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.println();
System.out.print("请输入要插入的元素:");
int x = input.nextInt();
aa.insert(arr1, len, x);
System.out.println();
int[] sumArr = aa.arrSum(arr2);
System.out.println("二维数组每一行的元素之和为:");
for (int i = 0; i < sumArr.length; i++) {
System.out.println("第" + (i+1) + "行:" + sumArr[i]);
}
}
}
```
你可以将这段代码复制到Java环境中进行测试,希望能对你有所帮助。
阅读全文