📖 Scenario: You have a list of daily temperatures recorded in an array. Sometimes, the middle day's temperature is incorrect and needs to be removed to keep the data accurate.
🎯 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 integer array called temps with exactly 7 values: 23, 25, 22, 20, 24, 26, 21
Create an integer variable called size and set it to 7
Write code to delete the middle element (index 3) from the temps array by shifting elements left
Print the updated array elements separated by spaces
💡 Why This Matters
🌍 Real World
Deleting incorrect or unwanted data points from sensor readings or logs is common in data cleaning.
💼 Career
Understanding array manipulation is fundamental for software developers working with low-level data or embedded systems.
Progress0 / 4 steps
1
Create the temperature array
Create an integer array called temps with these exact values: 23, 25, 22, 20, 24, 26, 21.
DSA C
Hint
Use int temps[7] = {23, 25, 22, 20, 24, 26, 21}; to create the array.
2
Set the size variable
Create an integer variable called size and set it to 7.
DSA C
Hint
Use int size = 7; to store the array length.
3
Delete the middle element
Write a for loop with variable i starting from 3 to size - 2 that shifts elements left in the temps array to delete the middle element at index 3. Then decrease size by 1.
DSA C
Hint
Use a for loop from 3 to size - 2 and assign temps[i] = temps[i + 1]; inside the loop. Then reduce size by 1.
4
Print the updated array
Write a for loop with variable i from 0 to size - 1 to print each element of temps separated by spaces.
DSA C
Hint
Use a for loop to print each element with printf("%d", temps[i]); and print a space after each except the last.
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
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.
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 A
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
Step 1: Identify the middle index and loop direction
The middle index is n/2 (integer division). To delete, shift elements after middle left.
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.
Final Answer:
for (int i = n/2; i < n - 1; i++) arr[i] = arr[i + 1]; n--; -> Option D
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
Step 1: Calculate middle index and deletion
n=6, mid=3. Element at index 3 is 20. It will be deleted.
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
Step 1: Analyze loop range and shifting direction
The loop runs from 0 to mid-1, shifting elements before middle left, which is incorrect.
Step 2: Correct shifting after middle index
To delete middle element, shift elements from middle index to end left by one, not before middle.
Final Answer:
Loop shifts elements before middle, should shift after middle -> Option B
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
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.
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.
Step 3: New array after deletion
Array becomes [1, 2, 5, 6]
Final Answer:
[1, 2, 5, 6] -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.