Вопрос [программирование на джаве] Поменять местами два элемента

Регистрация
15 Май 2013
Сообщения
62
Репутация
1
Спасибо
0
Монет
0
Здравствуйте господа, я новичок в Джаве и буду рад помощи...
Задача такова: поменять местами максимальный и минимальный элемент массива местами, макс и мин найти методом MaxX и MinX. С этой задачей я справился, но возникли сложности с тем, что бы поменять их местами. Нужно сначала вывести оригинальную матрицу, а затем измененную. Есть такая попытка:
import java.util.Arrays;

public class Macc_6 {
public static int x;
public static int f;
public static int size;

public static int minX(int[] array, int size){
int x = 0;
for (int i = 1; i < size; i++) {
if (array[x] > array) {
x = i;
}
}

return x;

}

public static int maxX(int[] array, int size) {
int f = 0;
for (int i = 1; i < size; i++) {
if (array[f] < array) {
f = i;
}
}
return f;

}

public static void main(String[] args) {
int[] array = new int[25];
System.out.print(" Исходный массив : ");
for (int i = 0; i < 25; i++) {
array = (int) Math.round(50 * Math.random());
System.out.print(array + ", ");
int temp = array[x];
array[x] = array[f];
array[f] = temp;
}
System.out.print(" Минимальный элемент: " + minX(array, 25));
System.out.print(" Максимальный элемент: " + maxX(array, 25));
}

}
Порядковый номер макс и мин элемента отображается, но местами не меняются. Просто до этого такого опыта не было, так что как в интернете научили так и сделал, но тут, видимо, все не так просто.
 
что вот это такое? public static int x; public static int f; public static int size; и зачем ты таскаешь всюду 25? если тебя попросят переписать программу для массива в 100 элементов, ты будешь бегать по коду и менять все 25 на 100? в твои методы поиска максимума и минимума совсем незачем передавать размер...
 
Всё даже очень просто. Меняешь два элемента местами при помощи третьей переменной. Давай нормальные имена переменным и не используй константы там, где не надо.
 
Назад
Сверху