Bird
Raised Fist0
DSA C++programming~20 mins

Array Insertion at Middle Index in DSA C++ - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Insertion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output after inserting 99 at the middle index?
Given the array and insertion code below, what is the printed array after inserting 99 at the middle index?
DSA C++
int arr[6] = {10, 20, 30, 40, 50};
int n = 5;
int x = 99;
int mid = n / 2;
for (int i = n; i > mid; i--) {
    arr[i] = arr[i - 1];
}
arr[mid] = x;
n++;
for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
A10 20 30 40 99 50
B10 20 30 99 40 50
C10 20 99 30 40 50
D10 20 30 40 50 99
Attempts:
2 left
💡 Hint
Remember that the middle index is calculated as n/2 and elements after it shift right.
❓ Predict Output
intermediate
2:00remaining
What is the output after inserting 7 at the middle index?
Consider the array and insertion code below. What is the printed array after inserting 7 at the middle index?
DSA C++
int arr[7] = {1, 2, 3, 4, 5, 6};
int n = 6;
int x = 7;
int mid = n / 2;
for (int i = n; i > mid; i--) {
    arr[i] = arr[i - 1];
}
arr[mid] = x;
n++;
for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
A1 2 3 7 4 5 6
B1 2 3 4 5 7 6
C1 2 3 4 7 5 6
D1 2 7 3 4 5 6
Attempts:
2 left
💡 Hint
Calculate middle index as n/2 and shift elements after it right.
🔧 Debug
advanced
2:00remaining
What error occurs when inserting at middle index with insufficient array size?
Given the code below, what error will occur when trying to insert 100 at the middle index?
DSA C++
int arr[5] = {1, 2, 3, 4, 5};
int n = 5;
int x = 100;
int mid = n / 2;
for (int i = n; i > mid; i--) {
    arr[i] = arr[i - 1];
}
arr[mid] = x;
n++;
for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
ARuntime error: Array index out of bounds
BSyntax error: Missing semicolon
CNo error, prints: 1 2 100 3 4 5
DLogical error: Incorrect middle index calculation
Attempts:
2 left
💡 Hint
Check array size and index used in the loop.
❓ Predict Output
advanced
2:00remaining
What is the output after inserting 0 at the middle index in an even-sized array?
Given the array and insertion code below, what is the printed array after inserting 0 at the middle index?
DSA C++
int arr[8] = {5, 10, 15, 20, 25, 30, 35};
int n = 7;
int x = 0;
int mid = n / 2;
for (int i = n; i > mid; i--) {
    arr[i] = arr[i - 1];
}
arr[mid] = x;
n++;
for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
A5 10 0 15 20 25 30 35
B5 10 15 20 0 25 30 35
C5 10 15 20 25 0 30 35
D5 10 15 0 20 25 30 35
Attempts:
2 left
💡 Hint
Middle index is n/2 = 3, shift elements from index 3 right.
🧠 Conceptual
expert
1:00remaining
How many elements are in the array after inserting at the middle index?
If an array initially has n elements and you insert one element at the middle index, how many elements does the array have afterward?
An
Bn + 1
Cn * 2
Dn - 1
Attempts:
1 left
💡 Hint
Inserting adds one new element to the array.

Practice

(1/5)
1. What does inserting an element at the middle index of an array mean?
easy
A. Adding a new element exactly in the center, shifting others right
B. Replacing the middle element with a new one
C. Adding a new element at the end of the array
D. Removing the middle element from the array

Solution

  1. Step 1: Understand middle index insertion

    Inserting at the middle means placing a new element at the center position, pushing existing elements right.
  2. Step 2: Differentiate from other operations

    Replacing or removing elements is not insertion; adding at the end is not middle insertion.
  3. Final Answer:

    Adding a new element exactly in the center, shifting others right -> Option A
  4. Quick Check:

    Middle insertion means insert and shift right [OK]
Hint: Middle insertion shifts elements right from center [OK]
Common Mistakes:
  • Thinking insertion replaces the middle element
  • Confusing insertion with appending at the end
  • Assuming middle means removing element
2. Which of the following C++ code snippets correctly inserts an element `x` at the middle index of array `arr` of size `n`?
easy
A. arr[n] = x; for(int i = n/2; i < n; i++) arr[i] = arr[i+1];
B. for(int i = 0; i < n/2; i++) arr[i] = arr[i+1]; arr[n/2] = x;
C. arr[n/2] = x; for(int i = n/2; i < n; i++) arr[i+1] = arr[i];
D. for(int i = n; i > n/2; i--) arr[i] = arr[i-1]; arr[n/2] = x;

Solution

  1. Step 1: Shift elements right from middle index

    Loop from end (n) down to middle (n/2 + 1) shifting elements right to make space.
  2. Step 2: Insert element at middle index

    Assign new element x at index n/2 after shifting.
  3. Final Answer:

    for(int i = n; i > n/2; i--) arr[i] = arr[i-1]; arr[n/2] = x; -> Option D
  4. Quick Check:

    Shift right then insert at middle [OK]
Hint: Shift elements right from end to middle before insert [OK]
Common Mistakes:
  • Shifting elements left instead of right
  • Inserting before shifting elements
  • Incorrect loop direction causing overwrite
3. What is the output array after inserting 99 at the middle index of arr = {10, 20, 30, 40, 50} using the correct insertion method?
medium
A. [10, 20, 30, 40, 99, 50]
B. [10, 20, 99, 30, 40, 50]
C. [10, 20, 30, 99, 40, 50]
D. [10, 20, 30, 40, 50, 99]

Solution

  1. Step 1: Calculate middle index

    Array size n=5, middle index = n/2 = 2 (0-based indexing).
  2. Step 2: Shift elements right and insert 99

    Shift elements from index 4 to 2 right by one position, then insert 99 at index 2.
  3. Final Answer:

    [10, 20, 99, 30, 40, 50] -> Option B
  4. Quick Check:

    Insert at index 2 shifts right [OK]
Hint: Middle index = size/2; shift right, then insert [OK]
Common Mistakes:
  • Inserting at wrong index (like 3 or 4)
  • Not shifting elements before insertion
  • Appending at the end instead of middle
4. Identify the error in the following code snippet that inserts element `x` at the middle index of array `arr` of size `n`:
for(int i = n/2; i < n; i++) {
  arr[i+1] = arr[i];
}
arr[n/2] = x;
medium
A. Loop shifts elements left instead of right
B. Index out of bounds when accessing arr[i+1]
C. Loop direction causes overwriting elements
D. No error, code works correctly

Solution

  1. Step 1: Analyze loop direction and effect

    The loop moves forward from middle to end, copying arr[i] to arr[i+1], overwriting elements before they are moved.
  2. Step 2: Identify correct approach

    Elements must be shifted right starting from the end backward to avoid overwriting data.
  3. Final Answer:

    Loop direction causes overwriting elements -> Option C
  4. Quick Check:

    Shift right must go backward to avoid overwrite [OK]
Hint: Shift elements right backward from end to middle [OK]
Common Mistakes:
  • Shifting elements forward causing data loss
  • Ignoring array bounds when shifting
  • Assuming forward loop works for shifting right
5. Given an array arr = {5, 10, 15, 20, 25, 30} of size 6, after inserting element 99 at the middle index, what will be the final array?
hard
A. [5, 10, 15, 99, 20, 25, 30]
B. [5, 10, 99, 15, 20, 25, 30]
C. [5, 10, 15, 20, 99, 25, 30]
D. [5, 10, 15, 20, 25, 30, 99]

Solution

  1. Step 1: Calculate middle index for even-sized array

    Array size n=6, middle index = n/2 = 3 (0-based indexing).
  2. Step 2: Shift elements right from index 5 to 3

    Shift elements at indices 5,4,3 one position right to make space at index 3.
  3. Step 3: Insert 99 at middle index

    Place 99 at index 3 after shifting.
  4. Final Answer:

    [5, 10, 15, 99, 20, 25, 30] -> Option A
  5. Quick Check:

    Insert at index 3 shifts right [OK]
Hint: For even size, middle = size/2; shift right, then insert [OK]
Common Mistakes:
  • Inserting at index 2 instead of 3
  • Not shifting elements before insertion
  • Appending at the end instead of middle
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard