What is the effect of this program?
#define MAX 50
int a[MAX], i, j, temp;
for(i = 0; i < MAX / 2; + + i)
{
temp = a[i];
a[i] = a[MAX - i -1];
a[MAX - i - 1] =temp;
}
A. Arranges the elements of array a inascending order
B. Counts the numbers of elements of agreater than its first element
C. Reverses the numbers stored in thearray
D. Puts the largest value in the last arrayposition
E. None of the above

Respuesta :

Answer:

The answer is (C)

Let’s run the algorithm on a small input to see the working process.

Let say we have an array {3, 4, 1, 5, 2, 7, 6}. MAX = 7

  • Now for i=0,  i < 7/2, here we exchange the value at ith index with value at (MAX-i-1)th index.
  • So the array becomes {6, 4, 1,  5, 2, 7, 3}. //value at 0th index =3 and value at (7-0-1)th index is 6.
  • Then for i=1, i < 7/2, the value at index 1 and (7-1-1)=5 are swapped.
  • So the array becomes {6, 7, 1,  5, 2, 4, 3}.
  • Then for i=2, i < 7/2, the value at index 2 and (7-2-1)=4 are swapped.
  • So the array becomes {6, 7, 2,  5, 1, 4, 3}.
  • Then for i=3, i not < 7/2, so stop here.
  • Now the current array is {6, 7, 2,  5, 1, 4, 3} and the previous array was{3, 4, 1, 5, 2, 7, 6}.

Explanation:

So from the above execution, we got that the program reverses the numbers stored in the array.