java - 结果不正确:数组首先在元素 [1][1] 处不同;
问题描述
这些是方法的说明,数组在 main 方法中给出。我看到上面的错误,我该如何解决这个问题?这个方法接受一个二维的双精度数组。传入的数组可以是任意大小。对于找到的每个 0 值,您将将此值修改为矩阵中该点的行平均值或列平均值中的较大者。main 方法中提供了两个用于测试 findAverage 方法的二维数组,分别名为 findAvgInput 和 findAvgInputLarge。下图说明了数组在方法开始(左)和方法结束(右)后 0 被最大平均值替换后的状态,列平均值为 ((4.5 + 0 + 8.4 )/3 = 4.3 节 (6 + 0 + 3.4)/3 = 3.13)。
5 4.5 6.8 6 0 3.4 7 8.4 2.3 5 4.5 6.8 6 4.3 3.4 7 8.4 2.3 这是我目前的代码!
public static void findAverage(double [][] array)
{
int i,j,k,k1;
double ra=0,ca=0;
for(i=0;i<array.length;i++)
{
for(j=0;j<array[i].length;j++)
{
if(array[i][j]==0) //if element is 0
{
for(k=0;k<array[i].length;k++)
{
ra+=array[i][k]; //get row average
}
ra=ra/array[i].length;
for(k1=0;k1<array.length;k1++)
{
ca+=array[k1][j]; //get column average
}
ca=ca/array.length;
//substitute 0 with max of ra and ca
if(ra>ca)
array[i][j]=ra;
else
array[i][j]=ca;
}
}
}
//print info
for(i=0;i<array.length;i++)
{
for(j=0;j<array[i].length;j++)
{
System.out.print(array[i][j]+" ");
}
System.out.println();
}
解决方案
推荐阅读
- android - 在 Android Studio 中通过蓝牙发送 .txt
- ansible - 在不需要的服务器中运行的 Ansible 剧本
- android - 在片段中调用方法
- php - 无法使用 php 7.3 在 ubuntu 19.10 上安装 php-intl 扩展
- automation - 自动创建 Power Bi 报告>
- cisco - % Cisco 中的无效接口类型和编号我的 vlan 是 22 23 和 24
- ruby-on-rails - Rails form_for 具有相同属性的嵌套和关联资源已填充文本
- python - 新闻在数据框中抓取多个网址
- sql - 如何在 Redshift 的数据库中创建表?
- python - 检查字符串中是否存在两个子字符串中的任何一个