📖 Scenario: You have a list of daily temperatures recorded for a week. Sometimes, a wrong temperature is recorded in the middle of the list. You want to remove that wrong temperature from the list.
🎯 Goal: Build a program that deletes the middle element from an array of temperatures and shows the updated list.
📋 What You'll Learn
Create an array called temperatures with exactly 7 integer values: 23, 25, 22, 30, 28, 26, 24
Create an integer variable called middleIndex that stores the middle index of the array
Remove the element at middleIndex from the temperatures array by shifting elements
Print the updated temperatures array elements separated by spaces
💡 Why This Matters
🌍 Real World
Removing incorrect or unwanted data from a list is common in data cleaning and processing tasks.
💼 Career
Understanding array manipulation is fundamental for software developers working with low-level data structures and performance-critical applications.
Progress0 / 4 steps
1
Create the temperatures array
Create an integer array called temperatures with these exact values: 23, 25, 22, 30, 28, 26, 24.
DSA C++
Hint
Use int temperatures[7] = {23, 25, 22, 30, 28, 26, 24}; to create the array.
2
Calculate the middle index
Create an integer variable called middleIndex and set it to the middle index of the temperatures array (which has 7 elements).
DSA C++
Hint
The middle index of an array with 7 elements is 7 / 2.
3
Delete the middle element by shifting
Use a for loop with variable i starting from middleIndex to 6 (last index) to shift elements left in the temperatures array, overwriting the middle element.
DSA C++
Hint
Start the loop at middleIndex and go up to index 6 (last index). Move each element one step left.
4
Print the updated array
Use a for loop with variable i from 0 to 5 to print the updated temperatures array elements separated by spaces.
DSA C++
Hint
Print elements from index 0 to 5 separated by spaces. Use std::cout.
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. [20, 30, 40, 50]
B. [10, 20, 30, 40, 50]
C. [10, 20, 30, 50]
D. [10, 20, 40, 50]
Solution
Step 1: Identify the middle index and element
The array size is 5, so middle index is 2. The element at index 2 is 30.
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.
Final Answer:
[10, 20, 40, 50] -> Option D
Quick Check:
Deleted middle element 30, shifted left [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 < n-1; i++) arr[i] = arr[i+1]; n--;
B. for(int i = 0; i < n/2; i++) arr[i] = arr[i+1]; n--;
C. arr[n/2] = 0; n--;
D. for(int i = n-1; i > n/2; i--) arr[i] = arr[i-1]; n--;
Solution
Step 1: Understand deletion logic
To delete middle element at index n/2, shift all elements after it one position left.
Step 2: Check each code snippet
for(int i = n/2; i < n-1; i++) arr[i] = arr[i+1]; n--; correctly shifts elements from middle to end left by one and reduces size. Others either shift wrong elements or just set zero without shifting.
Final Answer:
for(int i = n/2; i < n-1; i++) arr[i] = arr[i+1]; n--; -> Option A
Quick Check:
Shift elements after middle left [OK]
Hint: Shift elements from middle index to end left [OK]
Common Mistakes:
Shifting elements before middle index
Not reducing array size
Assigning zero instead of shifting
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++) {
std::cout << arr[i] << " ";
}
medium
A. 5 10 15 25 30
B. 5 10 15 20 25 30
C. 5 10 15 20 30
D. 5 10 20 25 30
Solution
Step 1: Calculate middle index and delete element
n=6, mid=3. Element at index 3 is 20. We delete 20 by shifting elements after index 3 left.
Step 2: Shift elements and print array
Shift arr[3]=arr[4]=25, arr[4]=arr[5]=30. New array: 5,10,15,25,30. Size reduced to 5.
Final Answer:
5 10 15 25 30 -> Option A
Quick Check:
Deleted 20, shifted left [OK]
Hint: Shift elements after middle left, reduce size by one [OK]
Common Mistakes:
Not reducing array size
Printing old array size
Not shifting elements correctly
4. Find the error in this code that tries to delete the middle element from array arr of size n:
int mid = n / 2;
for(int i = mid; i <= n - 1; i++) {
arr[i] = arr[i + 1];
}
n--;
medium
A. Array size n should not be decremented
B. Middle index calculation is wrong
C. Loop condition should be i < n - 1, not i <= n - 1
D. Loop should start from 0, not mid
Solution
Step 1: Analyze loop range for shifting elements
The loop runs from mid to n-1 inclusive, so arr[i+1] accesses arr[n], which is out of bounds.
Step 2: Correct loop condition
Loop should run while i < n-1 to avoid accessing beyond array size.
Final Answer:
Loop condition should be i < n - 1, not i <= n - 1 -> Option C
Quick Check:
Prevent out-of-bounds by correct loop limit [OK]
Hint: Loop till one before last index to avoid overflow [OK]
Common Mistakes:
Using <= instead of < in loop condition
Not decrementing array size
Wrong middle index calculation
5. Given an array arr of size n, write the logic to delete the middle element and return the new array size. What will be the size after deletion if n is even? Choose the correct approach.
hard
A. Delete element at index (n-1)/2, shift elements left, new size = n - 1
B. Delete element at index n/2, shift elements left, new size = n - 1
C. Delete element at index n/2, no shifting needed, new size = n - 1
D. Delete element at index n/2 - 1, shift elements left, new size = n - 1
Solution
Step 1: Understand middle index for even-sized array
In standard array operations, middle index is n/2 (integer division), consistent with odd sizes.
Step 2: Delete element at n/2 and shift elements left
Remove element at index n/2, shift all elements after it left by one, reduce size by 1.
Final Answer:
Delete element at index n/2, shift elements left, new size = n - 1 -> Option B
Quick Check:
Middle index = n/2 for even n [OK]
Hint: Use n/2 as middle index regardless of parity [OK]
Common Mistakes:
Deleting lower middle index (n/2 - 1) for even n
Not shifting elements after deletion
Not reducing array size
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.