205k views
0 votes
Assume that you have an array of integers named arr. The following program segment is intended to sum arr [0]through arr[n−1], where n = arr.length: sum = 0; i = 0; n = arr.length; while (i != n) { i++; sum += arr[i]; } In order for this segment to perform as intended, which of the following modifications, if any, should be made?

1 Answer

2 votes

Answer:

There is only one modification in the above loop i.e. while loop should be like this--

while (i != n)

{

sum+=arr[i]; // Line 1, In question segment it is line 2.

i++; // Line 2, In question segment it is line 1.

}

Output:

Now if the array input is 1,2,3,4,5 then the output is 15.

Step-by-step explanation:

In the above question, all the line of the segment is right except the body of the loop because--

  • The First line of the loop is increment statement which increments the value of "i" variable from 1 and the value of "i" variable will be 1 in the first iteration of the loop
  • The second line starts to add the value from 1'st index position of the array. Hence the segment gives the wrong answer. It adds the arr[1] to arr[n-1].
  • So I interchanged both lines of the while loop as shown in the answer part. I make the line 1 (In question segment) as line 2(In answer part) and line 2 (In question segment) as line 1 (In answer part).

Now It gives the correct output because it can add arr[0] to arr[n-1].

User Pavel Poberezhnyi
by
6.2k points