【问题标题】:finding the average of rows of a jagged array找到锯齿状数组的行的平均值
【发布时间】:2022-02-01 03:46:09
【问题描述】:

我正在尝试在锯齿状二维数组上找到行的平均值,我已经将数组打印出来,但平均部分打印出错误的平均值。我的代码有什么问题?

//print array
for(int k = 0; k < arr.length; k++) { 
    for(int j = 0; j < arr[k].length; j++) {

        System.out.print(arr[k][j] + " ");             
    }

    System.out.println();
}
          
//average
for (int r = 0; r < arr.length; r++) {
    double sum = 0.0;
    double avg = 0.0;
    for (int c = 0; c < arr[r].length; c++) {
        sum += arr[r][c];  
        avg = sum / i; // i is the columns of the array;
    }
   
    System.out.println("Row " + (row + 1) + " average is: " + avg);
    
}

【问题讨论】:

    标签: java


    【解决方案1】:

    而不是即时计算平均值,您应该只通过将avg = sum / i; 移动到嵌套循环之外来计算它,否则它会在每次循环时除以不正确的值。也可以改用avg = sum / arr[r].length;,因为我们确切地知道每行有多少列:

        for (int r = 0; r < arr.length; r++){
            double sum = 0.0;
            for (int c = 0; c < arr[r].length; c++){
                sum += arr[r][c];  
            }
            //Calculate the average outside the nested loop using (sum / columns)
            double avg = avg = sum / arr[r].length;
            System.out.println("Row " + (row + 1) + " average is: " + avg);
        }
    

    【讨论】:

    • 知道了,谢谢!!!
    猜你喜欢
    • 2018-05-29
    • 2016-11-20
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多