Есть задача.
Создать функцию, определяющую в целочисленном прямоугольном массиве matrixnm сумму всех элементов, соприкасающихся углами с его максимальным элементом.
Написал под неё программу, но считает она не правильно. Помогите пожалуйста разобраться.
Код:
int n, m, vector_min, vector_max, max, s;
jTextArea1.setText(null);
vector_min = Integer.parseInt(jTextField1.getText());
vector_max = Integer.parseInt(jTextField2.getText());
n = Integer.parseInt(jTextField3.getText());
m = Integer.parseInt(jTextField4.getText());
if (vector_min > vector_max) {
JOptionPane.showMessageDialog(null, "максимальное должно быть больше минимального");
return;
}
int vector[][] = new int[n][m];
Random Rand = new Random();
jTextArea1.append("Массив:" + "\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
vector[i][j] = Rand.nextInt(vector_max - vector_min + 1) + vector_min;
jTextArea1.append(Integer.toString(vector[i][j]) + " ");
}
jTextArea1.append("\n");
}
int jmax = 0,imax = 0,i,j;
max = vector_min;
for (i = 1; i < n; i++) {
for (j = 1; j < m; j++) {
if (max < vector[i][j]) {
max = vector[i][j];
imax = i;
jmax = j;
}
}
}
s = 0;
//int imax, jmax;
for (i = imax - 1; i < imax + 1; i++){
for (j = jmax - 1; j < jmax + 1; j++){
if ((i > 0) && (i <= n) && (j > 0) && (j <= m) && !((i == imax) && (j == jmax))){
s = s + vector[i][j];
}
}
jTextArea1.append("max = " + Integer.toString(max));
jTextArea1.append("sum = " + Integer.toString(s) + "\n");
}