Печать соответствующего индекса массива - PullRequest
0 голосов
/ 09 ноября 2018
int diff = gamesA[0] - gamesB[0];
    for(int i = 0; i < gamesA.length; i++)
    {
        int y = Math.abs(gamesA[i] - gamesB[i]);
        if(y > diff)
        diff = y;
    }
    System.out.println("In quarter finals, largest deficit of schoolB was " 
+ diff + " in the" +_____+ "game.");

Я пытаюсь распечатать индекс в массиве, где самый большой дефицит. Не то, что значение, а индекс, в котором оно находится. Все, что помогает. «____» - это место, где необходимо разместить необходимый код.

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

следующим образом:

int diff = gamesA[0] - gamesB[0];
int i; // declare it outside the loop to make it available after loop ends.
    for(i = 0; i < gamesA.length; i++)
    {
        int y = Math.abs(gamesA[i] - gamesB[i]);
        if(y > diff)
        diff = y;
    }
    System.out.println("In quarter finals, largest deficit of schoolB was " 
+ diff + " in the" +(i+1)+ "game.");
//i+1 for indexing from 1 onward .. or use just i for indexing 0 onward.
0 голосов
/ 09 ноября 2018

Другие ответы до сих пор всегда будут печатать последнюю позицию. Попробуйте это: -

int diff = gamesA[0] - gamesB[0];
int pos = 0;
for (int i = 0; i < gamesA.length; i++) {
    int y = Math.abs(gamesA[i] - gamesB[i]);
    if (y > diff) {
        diff = y;
        pos = i;
    }
}
System.out.println("In quarter finals, largest deficit of schoolB was "
        + diff + " in the" + pos + "game.");
0 голосов
/ 09 ноября 2018

Просто объявите переменную для хранения индекса вне цикла

int diff = gamesA[0] - gamesB[0];
int index;
    for(int i = 0; i < gamesA.length; i++)
    {
        int y = Math.abs(gamesA[i] - gamesB[i]);
        if(y > diff)
        diff = y;
        index = i;
    }
    System.out.println("In quarter finals, largest deficit of schoolB was " + diff + " in the" + index + "game.");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...