Рубрики

ВОРОТА | GATE-CS-2014- (Set-1) | Вопрос 50

Рассмотрим следующую функцию C, в которой размер — это количество элементов в массиве E:

Значение, возвращаемое функцией MyX, является

int MyX(int *E, unsigned int size)

{

    int Y = 0;

    int Z;

    int i, j, k;

    for(i = 0; i < size; i++)

        Y = Y + E[i];

    for(i = 0; i < size; i++)

        for(j = i; j < size; j++)

        {

            Z = 0;

            for(k = i; k <= j; k++)

                Z = Z + E[k];

            if (Z > Y)

                Y = Z;

        }

    return Y;

}

(A) максимально возможная сумма элементов в любом подмассиве массива E.
(B) максимальный элемент в любом подмассиве массива E.
(C) сумма максимальных элементов во всех возможных подмассивах массива E
(D) сумма всех элементов в массиве E.

Ответ: (А)
Объяснение: Объяснение: функция выполняет следующие
Y используется для хранения максимальной суммы, видимой на данный момент, а Z используется для хранения текущей суммы
1) Инициализируйте Y как сумму всех элементов
2) Для каждого элемента вычислите сумму всех подмассивов, начиная с arr [i]. Сохраните текущую сумму в Z. Если Z больше, чем Y, то обновите Y.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2014- (Set-1) | Вопрос 50

0.00 (0%) 0 votes