📖 Scenario: You are helping a librarian organize a shelf of books. The books are currently arranged in a certain order, but the librarian wants to see the order reversed to check the last book first.
🎯 Goal: Build a program that reverses the order of an array of book IDs using a simple loop technique.
📋 What You'll Learn
Create an array called books with the exact values {101, 102, 103, 104, 105}
Create an integer variable called n that stores the size of the books array
Use a for loop with variables i and j to swap elements and reverse the array
Print the reversed array elements separated by spaces
💡 Why This Matters
🌍 Real World
Reversing arrays is useful in many real-world tasks like undo operations, reversing playlists, or processing data in reverse order.
💼 Career
Understanding array manipulation and reversal is a fundamental skill for software developers, especially in roles involving data processing, algorithms, and system programming.
Progress0 / 4 steps
1
Create the initial array
Create an integer array called books with the exact values {101, 102, 103, 104, 105}.
DSA C++
Hint
Use C++ array syntax with the exact values inside curly braces.
2
Store the size of the array
Create an integer variable called n and set it to the size of the books array using sizeof(books) / sizeof(books[0]).
DSA C++
Hint
Use sizeof operator to find the number of elements in the array.
3
Reverse the array using a loop
Use a for loop with variables i and j to swap elements and reverse the books array. Loop from i = 0 to i < n / 2 and swap books[i] with books[j] where j = n - 1 - i.
DSA C++
Hint
Swap elements from start and end moving towards the center.
4
Print the reversed array
Use a for loop with variable i from 0 to n - 1 to print each element of the reversed books array separated by spaces using std::cout.
DSA C++
Hint
Print all elements in one line separated by spaces, then end with a newline.
Practice
(1/5)
1. What does reversing an array mean in simple terms?
easy
A. Changing the order of elements so the last becomes first and first becomes last
B. Sorting the array in ascending order
C. Removing duplicate elements from the array
D. Adding new elements at the end of the array
Solution
Step 1: Understand the meaning of reversal
Reversing means flipping the order of elements so the last element comes first and the first element goes last.
Step 2: Compare with other options
Sorting arranges elements by value, removing duplicates deletes repeated items, adding elements increases size. None of these change order like reversal.
Final Answer:
Changing the order of elements so the last becomes first and first becomes last -> Option A
Quick Check:
Reversal = Flip order [OK]
Hint: Reversal flips order, not sorting or removing [OK]
Common Mistakes:
Confusing reversal with sorting
Thinking reversal removes elements
Mixing reversal with adding elements
2. Which of the following C++ code snippets correctly reverses an array arr of size n using a for loop?
easy
A. for(int i = 0; i < n; i++) { arr[i] = arr[i]; }
B. for(int i = 0; i < n; i++) { arr[i] = arr[n - i]; }
C. for(int i = 0; i < n / 2; i++) { std::swap(arr[i], arr[n - i - 1]); }
D. for(int i = 0; i < n; i++) { arr[i] = arr[i + 1]; }
Solution
Step 1: Analyze the correct reversal loop
The loop swaps elements from start and end moving towards the center, stopping at half the array size.
Step 2: Check other options for errors
A does nothing, for(int i = 0; i < n; i++) { arr[i] = arr[n - i]; } accesses out-of-bound index (arr[n - i]), C shifts elements incorrectly.
Final Answer:
for(int i = 0; i < n / 2; i++) { std::swap(arr[i], arr[n - i - 1]); } -> Option C
Quick Check:
Swap pairs from ends to middle [OK]
Hint: Swap pairs from ends to middle to reverse [OK]
Common Mistakes:
Accessing out-of-bound indices
Not stopping loop at half the array
Overwriting elements without swapping
3. What is the output of the following C++ code?
int arr[] = {1, 2, 3, 4, 5};
int n = 5;
for(int i = 0; i < n / 2; i++) {
int temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
for(int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
medium
A. 5 4 3 2 1
B. 1 2 3 4 5
C. 5 2 3 4 1
D. 4 3 2 1 5
Solution
Step 1: Trace the swapping loop
Swaps arr[0] with arr[4], arr[1] with arr[3]. After swaps, arr = {5,4,3,2,1}.
Step 2: Print the array elements
The loop prints all elements in order: 5 4 3 2 1.
Final Answer:
5 4 3 2 1 -> Option A
Quick Check:
Reversed array prints 5 4 3 2 1 [OK]
Hint: Swapping pairs reverses array elements [OK]
Common Mistakes:
Not swapping correctly
Loop running too many times
Printing before reversal
4. Identify the error in the following code that attempts to reverse an array arr of size n:
for(int i = 0; i <= n / 2; i++) {
int temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
medium
A. No error; the code correctly reverses the array
B. The swap logic is incorrect; it should swap arr[i] with arr[i+1]
C. The loop should run from i = 1 to n / 2 instead of 0
D. The loop condition should be 'i < n / 2' to avoid swapping the middle element twice
Solution
Step 1: Analyze the loop condition
The loop runs while i <= n/2, which includes the middle element when n is odd.
Step 2: Understand the effect of swapping middle element twice
Swapping the middle element with itself is unnecessary and can cause incorrect behavior or redundant operation.
Final Answer:
The loop condition should be 'i < n / 2' to avoid swapping the middle element twice -> Option D
Quick Check:
Loop must stop before middle index [OK]
Hint: Use 'i < n/2' to avoid double swapping middle element [OK]
Common Mistakes:
Using <= instead of < in loop condition
Swapping wrong elements
Starting loop from 1 instead of 0
5. Given a 2D array (matrix) of size m x n, which approach correctly reverses each row individually in C++?
hard
A. Swap elements column-wise from first to last column for all rows simultaneously
B. Use a nested loop: for each row, swap elements from start to end using two pointers
C. Transpose the matrix and then reverse the entire matrix as a 1D array
D. Sort each row in descending order to reverse it
Solution
Step 1: Understand reversing each row
Reversing each row means flipping elements in that row only, not affecting other rows.
Step 2: Identify correct method
Using two pointers per row to swap elements from start and end is the correct approach.
Step 3: Check incorrect options
Swapping column-wise mixes rows, transposing changes structure, sorting changes order by value, not position.
Final Answer:
Use a nested loop: for each row, swap elements from start to end using two pointers -> Option B
Quick Check:
Reverse rows by swapping pairs inside each row [OK]
Hint: Reverse each row with two-pointer swaps inside nested loop [OK]
Common Mistakes:
Trying to reverse columns instead of rows
Using sorting instead of reversing
Transposing matrix instead of reversing rows
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.