The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+19 votes
2.3k views

Consider the C program given below : 

#include <stdio.h>
int main ()    {
    int sum = 0, maxsum = 0,  i,  n = 6;
    int a [] = {2, -2, -1, 3, 4, 2};
    for (i = 0; i < n; i++)    {
            if (i == 0 || a [i]  < 0  || a [i] < a [i - 1])  {
                     if (sum > maxsum) maxsum = sum;
                     sum = (a [i] > 0) ? a [i] : 0;
            }
            else sum += a [i];
    }
    if (sum > maxsum) maxsum = sum ;
    printf ("%d\n", maxsum);

}

What is the value printed out when this program is executed?

  1. $9$
  2. $8$
  3. $7$
  4. $6$
asked in Programming by Boss (16.3k points)
edited by | 2.3k views

4 Answers

+22 votes
Best answer

Answer is C.

$$\begin{array}{|l|l|l|l|l|} \hline \text{i} &  \text{$A[i]$} & \text{for $\rightarrow$ if -----satisfied?}  & \text{maxsum} & \text{sum} \\\hline \text{-} &  \text{-} & \text{-}  & 0 & 0  \\\hline 0 &  \text{$A[0]= 2$} & \text{Yes $(i == 0)$}  & 0 & 2 \\\hline 1 &  \text{$A[1]= -2$} & \text{Yes $(a[i] < 0)$}  & 2 & 0   \\\hline 2 &  \text{$A[2]= -1$} & \text{Yes $(a[i] < 0)$}  & \text{(for $\rightarrow$ if $\rightarrow$ if -----not satisfied)} & 0  \\\hline  3 &  \text{$A[3]= 3$} & \text{No (else executed)}  & \text{(for $\rightarrow$ if $\rightarrow$ if -----not satisfied)} & 3  \\\hline 4 &  \text{$A[4]= 4$} & \text{No (else executed)}  & \text{(for $\rightarrow$ if $\rightarrow$ if -----not satisfied)} & 7 \\\hline  5 &  \text{$A[5]= 2$} & \text{Yes $(a[i] < a[i - 1])$}  & 7 & 2 \\\hline \end{array}$$

[End of for loop]

If (sum (i.e., $2$) $ >$ maxsum (i.e., $7$))   // No

                maxsum $=$ sum;   // Not Executed

printf will output maxsum $= 7$

answered by (189 points)
edited by
0
ans is c
0
Thanks, I have written it now.
+1
Great !
+18 votes
The algorithm is finding the maximum sum of the monotonically increasing continuous sequence of positive numbers in the array. So, output would be $3+4 = 7.$
answered by Veteran (407k points)
+1
Sir but here in array  the no. is 2,-2,-1,3,4,2. How is it monotonically increasing? I couldn't understand? Please explain a bit about it. Thanks.
+2
How did you know that it is monotonically increasing by looking into question.Is there any standard approach to do such kinds of problems ?
+1
monotonically incresing means to find of set of contigous vaues which has maximum sum

in ques ,

{-2,-1,3,4}  SUM=4

{-1,3,4} SUM=6

{3,4} SUM=7

here maximum sum is 7

HEnce monotonically incresing value is 7
0
@Arjun Sir,  if the input array contains only negative integers in increasing order (example--9, -8,-7,-3,-2,-1) then output will be 0, is the algorithm  correct in that case?
+1
yes, if there are no positive values sum must be 0.
+11 votes
first of  all  some  synatax  error  in  above  code segment .  right code given  below

# include <stdio.h>
int main ()    {
    int sum = 0, maxsum = 0,  i,  n = 6;
    int a [] = {2, -2, -1, 3, 4, 2};
    for (i = 0; i < n; i++)    {
            if (i == 0 || a [i]  < 0  || a [i] < a [i - 1])  {
                     if (sum > maxsum) maxsum = sum;
                     sum = (a [i] > 0) ? a [i] : 0;
            }
            else
                sum += a [i];
            }
            if (sum > maxsum) maxsum = sum ;
            printf ("%d\n", maxsum);
}

 

 

 

ans  is  C .

simply  execute  and  trace  value of  sum and  maxsum for i=0 to 5

i  -->      initially  0   1   2   3   4     5

sum            0     0   2   0   3    7    2

maxsum     0     0   2   2   2   2    7

so  maxsum  =  7
answered by Junior (715 points)
0
Your answer is correct, but the traced values of sum at i = 0 and i = 1 have been written wrong here. These should be opposite (you may have miss typed).
0
general doubt:

when we are inside the function ,the value of sum is retain back just like static.but once if we out from the for loop the value of sum and mxsum wil be zero?
0 votes

Caption

Maxsum is 7 

answered by Junior (757 points)
Answer:

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
49,530 questions
54,139 answers
187,354 comments
71,068 users