m0_62991886 2023-04-01 10:53 采纳率: 60%
浏览 39
已结题

java如图合并二维数组

img


有9行18列二维数组,请将列(4,10)(2,12)(0,15)(6,16)(3,14)(9,13)(8,17)(1,7)(5,11)计算均值合并为9行9列的二维数组。
再将所有9行9列二维数组中(i,j)和(j,i)两个元素合并计算均值,形成三角形矩阵数组。
注意:数据类型要用float来计算。
完整测试用例:

img

  • 写回答

2条回答 默认 最新

  • 微软技术分享 全栈领域优质创作者 2023-04-01 11:03
    关注

    这个案例好实现得很,合并二维数组并计算均值的功能,如下所示;

    public class ArrayOperations {
        public static void main(String[] args) {
            // 定义原始二维数组
            float[][] array = new float[9][18];
            // 给二维数组赋值
    
            // 定义新的二维数组
            float[][] newArray = new float[9][9];
            // 遍历需要合并的列
            int[][] cols = {{4,10},{2,12},{0,15},{6,16},{3,14},{9,13},{8,17},{1,7},{5,11}};
            for (int i = 0; i < cols.length; i++) {
                // 对于每一列,计算均值并存储到新的二维数组中
                int col1 = cols[i][0];
                int col2 = cols[i][1];
                float sum = 0;
                for (int row = 0; row < array.length; row++) {
                    sum += array[row][col1] + array[row][col2];
                }
                float avg = sum / (array.length * 2);
                for (int row = 0; row < newArray.length; row++) {
                    newArray[row][i] = avg;
                }
            }
    
            // 定义三角形矩阵数组
            float[][] triangleArray = new float[9][9];
            // 遍历每一行和每一列
            for (int i = 0; i < newArray.length; i++) {
                for (int j = 0; j < newArray.length; j++) {
                    if (i == j) {
                        // 对角线上的元素,直接复制
                        triangleArray[i][j] = newArray[i][j];
                    } else if (i < j) {
                        // 上三角矩阵的元素,计算均值并存储
                        float sum = newArray[i][j] + newArray[j][i];
                        float avg = sum / 2;
                        triangleArray[i][j] = avg;
                        triangleArray[j][i] = avg;
                    }
                }
            }
    
            // 输出结果
            for (int i = 0; i < triangleArray.length; i++) {
                for (int j = 0; j < triangleArray[i].length; j++) {
                    System.out.print(triangleArray[i][j] + "\t");
                }
                System.out.println();
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 修改了问题 4月1日
  • 创建了问题 4月1日

悬赏问题

  • ¥50 安装华大九天aether
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证