在每行中所有小于1的数字中,选择最高和第二高

时间:2019-04-19 03:39:13

标签: java

我正在练习在矩阵的每一行中找到2个最大的数字,但是它必须小于1。

例如矩阵是:

1,000   0,283   0,372   0,962   
0,283   1,000   0,915   0,232   
0,372   0,915   1,000   0,253   
0,962   0,232   0,253   1,000   

所以我希望输出应该是:

0,962   0,372
0,915   0,283
0,915   0,372
0,962   0,253

到目前为止,我所做的一切并没有在控制台部分给我很多帮助 这是我的代码:

public static double[][] Neighbor(double a[][], int m,int n)
{
    double first,second;
first = second = -100;
    double [][]neighbors = new double[m][2];

for(int i = 0; i<m ;i++)
{
 for(int j = 0; j<n;j++)
     if( a[i][j] > first && a[i][j] < 1)
    {
        second = first;
        first = a[i][j];
        neighbors[i][1] = first;
    }

      else if( a[i][j] > second && a[i][j] < 1)
    {
        second = a[i][j];
        neighbors[i][2] = second;
    }
    }
    }   
return neighbors;
}

主要:

double[][] neighbors = new double[m][2];
neighbors = Neighbor(Ybar,m,m);
System.out.println(); 
for(int i = 0; i < m; i++)
   {
     for(int j = 0; j < 2; j++)
     {              
        System.out.printf("%.3f   ", neighbors[i][j] );
     }
     System.out.println();
}

我的邻居函数有什么问题吗?  我是java的新手:)

0 个答案:

没有答案