#java
#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 amp;amp; a[i][j] < 1)
{
second = first;
first = a[i][j];
neighbors[i][1] = first;
}
else if( a[i][j] > second amp;amp; 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 🙂
Комментарии:
1. 2 Наибольшее число в каждой строке <1?
2. извините за мой плохой английский. Я действительно не знаю, как описать эту ситуацию. Я был бы признателен, если бы вы помогли мне с грамматикой 🙂
3. @MariosNikolaou: Из всех чисел в каждой строке, которые меньше 1, выберите самое высокое и второе по величине.
4. @Amadan ok понял.
5. Индексы массива начинаются с 0, а не с 1. Смотрите:
neighbors [i][1]
иneighbors [i][2]
. Вы не сбрасываете второе и первое обратно на -100 после завершения одной строки.