📜  门| GATE-CS-2014-(Set-1)|第50章

📅  最后修改于: 2021-06-29 03:57:03             🧑  作者: Mango

考虑以下C函数,其中size是数组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中所有元素的总和。答案: (A)
说明:说明:该函数如下
Y用于存储到目前为止看到的最大和,Z用于存储当前总和
1)初始化Y为所有元素的总和
2)对于每个元素,计算以arr [i]开头的所有子数组的总和。将当前总和存储在Z中。如果Z大于Y,则更新Y。
这个问题的测验