Мне нужно найти «Долины» и «Пики» чисел в массиве. «Долины» и «Пики» в значительной степени означают, что мне нужно сравнить каждый индекс с двумя индексами вокруг него. Поэтому, если средний индекс больше, чем индексы вокруг него, его «пик», но если индекс в середине меньше, чем два индекса вокруг него, это «Долина». Я должен сделать это для каждого числа в каждой строке массива показано ниже:Как сравнить элементы в массиве в java?
int[][] arrays = {
{ 2, 5, 3, 2, 1, 9, 7, 8, },
{ 4, 4, 7, 4, 2, },
{ 2, 5, 3, 3, 7, 2, },
{ 1, 9, 3, 5, 2, 7, 3, 5, 1 },
{ 2, 8, 8, 7, 9, 9, 9, 3 },
{ 4, 3, 2, 1, 0, },
{ 1, 2, 5, 9, 10, },
};
я попытался использовать, если и еще если, но наименьший массив переходит к индексу 4, и если я пытаюсь использовать более высокие показатели код не будет работать должным образом. Вот моя попытка:
public class ValleyPeak {
public static void main(String[] args) {
int[][] arrays = {
{ 2, 5, 3, 2, 1, 9, 7, 8, },
{ 4, 4, 7, 4, 2, },
{ 2, 5, 3, 3, 7, 2, },
{ 1, 9, 3, 5, 2, 7, 3, 5, 1 },
{ 2, 8, 8, 7, 9, 9, 9, 3 },
{ 4, 3, 2, 1, 0, },
{ 1, 2, 5, 9, 10, },
};
for (int i = 0; i < arrays.length; i++)
valley_peak(arrays[i]);
}
static void valley_peak(int[] a) {
System.out.print("\narray: \n");
//1
if(a[0] > a[1]){
System.out.println("[0] is a peak, ");
}
else if(a[0] < a[1]){
System.out.println("[0] ia a valley, ");
}
//2
if(a[1] > a[0] && a[1] > a[2]){
System.out.println("[1] ia a peak, ");
}
else if(a[1] < a[0] && a[1] < a[2]){
System.out.println("[1] ia a valley, ");
}
//3
if(a[2] > a[1] && a[2] > a[3]){
System.out.println("[2] ia a peak, ");
}
else if(a[2] < a[1] && a[2] < a[3]){
System.out.println("[2] ia a valley, ");
}
//4
if(a[3] > a[2] && a[3] > a[4]){
System.out.println("[3] ia a peak, ");
}
else if(a[3] < a[2] && a[3] < a[4]){
System.out.println("[3] ia a valley, ");
}
//4
if(a[4] > a[3] && a[4] > a[5]){
System.out.println("[4] ia a peak, ");
}
else if(a[4] < a[3] && a[4] < a[5]){
System.out.println("[4] ia a valley, ");
}
//5
if(a[5] > a[4] && a[5] > a[6]){
System.out.println("[5] ia a peak, ");
}
else if(a[5] < a[4] && a[5] < a[6]){
System.out.println("[5] ia a valley, ");
}
//6
if(a[6] > a[5] && a[6] > a[7]){
System.out.println("[6] ia a peak, ");
}
else if(a[6] < a[5] && a[6] < a[7]){
System.out.println("[6] ia a valley, ");
}
//7
if(a[7] > a[6] && a[7] > a[8]){
System.out.println("[7] ia a peak, ");
}
else if(a[7] < a[6] && a[7] < a[8]){
System.out.println("[7] ia a valley, ");
}
//8
if(a[8] > a[7] && a[8] > a[9]){
System.out.println("[8] ia a peak, ");
}
else if(a[8] < a[7] && a[8] < a[9]){
System.out.println("[8] ia a valley, ");
}
//9
if(a[9] > a[8] && a[9] > a[10]){
System.out.println("[9] ia a peak, ");
}
else if(a[9] < a[8] && a[9] < a[10]){
System.out.println("[9] ia a valley, ");
}
}
}
Я застрял на том, что я должен делать дальше? Я довольно новичок в массивах, смотрел несколько видеороликов, но до сих пор не могу понять, как это сделать.
Вам необходимо использовать петлю. У вас уже есть цикл в 'main()'. Используйте другой в своем процессоре. Вы, например, нигде не проверяете, есть ли 'a [10]' на самом деле или если 'a.length <9'. –