Bird
Raised Fist0
DSA Cprogramming~10 mins

Array Deletion at Middle Index in DSA C - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to shift elements left after deleting an element at index mid.

DSA C
for (int i = mid; i < n - 1; i++) {
    arr[i] = arr[1];
}
Drag options to blanks, or click blank then click option'
A[i + 1]
B[i - 1]
C[mid]
D[i]
Attempts:
3 left
💡 Hint
Common Mistakes
Using arr[i - 1] which shifts elements incorrectly.
Using arr[mid] which copies the same element repeatedly.
2fill in blank
medium

Complete the code to reduce the array size after deletion.

DSA C
n = n [1] 1;
Drag options to blanks, or click blank then click option'
A+
B-
C*
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using addition which increases the size incorrectly.
Using multiplication or division which changes size wrongly.
3fill in blank
hard

Fix the error in the loop condition to avoid accessing out of bounds.

DSA C
for (int i = mid; i [1] n - 1; i++) {
    arr[i] = arr[i + 1];
}
Drag options to blanks, or click blank then click option'
A<=
B>=
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using <= causes out of bounds access.
Using > or >= causes the loop to skip or run incorrectly.
4fill in blank
hard

Fill both blanks to print the array elements after deletion.

DSA C
for (int i = 0; i [1] n; i++) {
    printf("%d ", arr[2]);
}
Drag options to blanks, or click blank then click option'
A<
B<=
C[i]
D[n]
Attempts:
3 left
💡 Hint
Common Mistakes
Using <= causes printing one extra element.
Using arr[n] causes out of bounds access.
5fill in blank
hard

Fill all three blanks to delete the middle element and print the updated array.

DSA C
int mid = n [1] 2;
for (int i = mid; i < n [2] 1; i++) {
    arr[i] = arr[i [3] 1];
}
n = n - 1;
for (int i = 0; i < n; i++) {
    printf("%d ", arr[i]);
}
Drag options to blanks, or click blank then click option'
A/
B+
C-
D*
Attempts:
3 left
💡 Hint
Common Mistakes
Using subtraction instead of addition in arr[i] assignment.
Using multiplication or wrong loop condition.

Practice

(1/5)
1. What happens when you delete the middle element from an array of size 5?
int arr[5] = {10, 20, 30, 40, 50};
Delete the element at index 2 (middle). What is the new array?
easy
A. [10, 20, 40, 50]
B. [10, 20, 30, 40, 50]
C. [10, 20, 30, 50]
D. [20, 30, 40, 50]

Solution

  1. Step 1: Identify the middle index and element

    The array has 5 elements, so the middle index is 2 (0-based). The element at index 2 is 30.
  2. Step 2: Delete the middle element and shift remaining elements

    Remove 30, then shift elements after index 2 left by one: 40 moves to index 2, 50 moves to index 3.
  3. Final Answer:

    [10, 20, 40, 50] -> Option A
  4. Quick Check:

    Middle element removed, array size reduced by 1 [OK]
Hint: Remove middle, shift right elements left by one [OK]
Common Mistakes:
  • Not shifting elements after deletion
  • Deleting wrong index
  • Leaving array size unchanged
2. Which of the following C code snippets correctly deletes the middle element from an array arr of size n?
easy
A. for (int i = n/2; i > 0; i--) arr[i] = arr[i - 1]; n--;
B. for (int i = 0; i < n/2; i++) arr[i] = arr[i + 1]; n--;
C. for (int i = n - 1; i > n/2; i--) arr[i] = arr[i - 1]; n--;
D. for (int i = n/2; i < n - 1; i++) arr[i] = arr[i + 1]; n--;

Solution

  1. Step 1: Identify the middle index and loop direction

    The middle index is n/2 (integer division). To delete, shift elements after middle left.
  2. Step 2: Check loop correctness

    for (int i = n/2; i < n - 1; i++) arr[i] = arr[i + 1]; n--; shifts elements from middle to end left by one, then reduces size. This is correct.
  3. Final Answer:

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

    Shift elements after middle left [OK]
Hint: Shift elements from middle to end left by one [OK]
Common Mistakes:
  • Shifting elements before middle
  • Looping in wrong direction
  • Not reducing array size
3. What is the output of the following C code?
int arr[6] = {5, 10, 15, 20, 25, 30};
int n = 6;
int mid = n / 2;
for (int i = mid; i < n - 1; i++) {
    arr[i] = arr[i + 1];
}
n--;
for (int i = 0; i < n; i++) {
    printf("%d ", arr[i]);
}
medium
A. 5 10 15 20 25 30
B. 5 10 15 20 30
C. 5 10 15 25 30
D. 5 10 20 25 30

Solution

  1. Step 1: Calculate middle index and deletion

    n=6, mid=3. Element at index 3 is 20. It will be deleted.
  2. Step 2: Shift elements after index 3 left by one

    arr[3] = arr[4] (25), arr[4] = arr[5] (30), n becomes 5.
  3. Step 3: Print updated array

    Elements: 5, 10, 15, 25, 30
  4. Final Answer:

    5 10 15 25 30 -> Option C
  5. Quick Check:

    Deleted middle element, shifted right elements left [OK]
Hint: Delete middle, shift right elements left, print first n-1 elements [OK]
Common Mistakes:
  • Printing original array size
  • Not shifting elements correctly
  • Deleting wrong index
4. Find the error in this code snippet that deletes the middle element from an array arr of size n:
int mid = n / 2;
for (int i = 0; i < mid; i++) {
    arr[i] = arr[i + 1];
}
n--;
medium
A. Middle index calculation is wrong, should be (n-1)/2
B. Loop shifts elements before middle, should shift after middle
C. Array size decrement should be before loop
D. No error, code is correct

Solution

  1. Step 1: Analyze loop range and shifting direction

    The loop runs from 0 to mid-1, shifting elements before middle left, which is incorrect.
  2. Step 2: Correct shifting after middle index

    To delete middle element, shift elements from middle index to end left by one, not before middle.
  3. Final Answer:

    Loop shifts elements before middle, should shift after middle -> Option B
  4. Quick Check:

    Shift elements after middle, not before [OK]
Hint: Shift elements after middle, not before [OK]
Common Mistakes:
  • Shifting elements before middle
  • Wrong loop boundaries
  • Not reducing array size
5. Given an array arr of size n where n is even, write the steps to delete the middle two elements and shift the rest. What will be the new array after deleting middle elements from {1, 2, 3, 4, 5, 6}?
hard
A. [1, 2, 5, 6]
B. [1, 2, 3, 6]
C. [1, 2, 4, 5, 6]
D. [1, 3, 4, 5, 6]

Solution

  1. Step 1: Identify middle two indices for even-sized array

    For n=6, middle two indices are 2 and 3 (0-based), elements 3 and 4.
  2. Step 2: Delete these two elements and shift remaining elements left

    Shift elements from index 4 and 5 left by two positions: 5 moves to index 2, 6 moves to index 3. Reduce size by 2.
  3. Step 3: New array after deletion

    Array becomes [1, 2, 5, 6]
  4. Final Answer:

    [1, 2, 5, 6] -> Option A
  5. Quick Check:

    Delete two middle elements, shift right elements left by two [OK]
Hint: Delete two middles, shift right elements left by two [OK]
Common Mistakes:
  • Deleting only one middle element
  • Shifting elements incorrectly
  • Not reducing array size by two
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