1

たとえば、配列から確認するにはどうすればよいですか5<10>5<10

コード:

int[] arr = {5,10,5,10,5,10,5};

for(int i = 0; i < arr.length; i++) {
    for(int j = 1; j < arr.length - i; j++) {
        if(arr[j-1] < arr[j] && arr[j] > arr[j+1]) {
            System.out.println("ok!");
        }
    }
}

今のところ私はこれを持っていますが、それは間違っています。

4

2 に答える 2

3

1 次元配列しかないので、これを 1 つのループで実行できるはずです。あなたの内側のループは近くに見えます。これを試して:

int[] arr = {5,10,5,10,5,10,5};

for(int j = 1; j < arr.length-1; j++){
    if(arr[j-1] < arr[j] && arr[j] > arr[j+1]){
        System.out.println("ok!");
    }
}

これは、2 番目の要素から始まり、最後から 2 番目の要素で終わり、定義した条件について各側の要素をチェックします。

于 2013-06-03T22:42:01.243 に答える
0

これは、配列に少なくとも 2 つのメンバーがあることを前提としています (前に確認できます)。

boolean isOk = true;

for(int i=1;i<arr.length;i+=2){
       isOk = isOk && (arr[i] > arr[i-1]) && (arr.length == i+1 || (arr[i] > arr[i+1]));
    } 
}

if(isOk) {
    System.out.println("ok!");
}
于 2013-06-03T22:45:44.900 に答える