📖 Scenario: You are managing a list of daily temperatures recorded in the morning. You want to add a new temperature reading at the start of the list to keep the latest data first.
🎯 Goal: Build a program that inserts a new temperature value at the beginning of an existing array of temperatures.
📋 What You'll Learn
Create an array with exact initial temperature values
Create a variable for the new temperature to insert
Shift existing array elements to the right to make space
Insert the new temperature at the beginning
Print the updated array elements separated by spaces
💡 Why This Matters
🌍 Real World
In real life, adding new data at the start of a list is common in logs, recent activity feeds, or sensor data streams.
💼 Career
Understanding array manipulation is fundamental for programming jobs, especially when working with low-level data or performance-critical applications.
Progress0 / 4 steps
1
Create the initial array of temperatures
Create an integer array called temps with these exact values: 23, 25, 22, 20, 24. Also create an integer variable size and set it to 5.
DSA C
Hint
Use int temps[10] to allow space for new elements.
2
Create the new temperature variable
Create an integer variable called new_temp and set it to 26.
DSA C
Hint
Just declare and assign the new temperature value.
3
Shift elements and insert new temperature
Use a for loop with variable i starting from size - 1 down to 0 to shift elements in temps one position to the right. Then insert new_temp at index 0. Finally, increase size by 1.
DSA C
Hint
Loop backwards to avoid overwriting data when shifting.
4
Print the updated array
Use a for loop with variable i from 0 to size - 1 to print each element of temps separated by spaces.
DSA C
Hint
Use printf("%d ", temps[i]) inside the loop to print each element.
Practice
(1/5)
1. What happens when you insert an element at the beginning of an array in C?
easy
A. The new element replaces the first element without shifting others.
B. All existing elements shift one position to the right to make space.
C. The array size automatically increases without shifting elements.
D. The last element is removed to insert the new element at the start.
Solution
Step 1: Understand array memory layout
Arrays store elements in continuous memory. To insert at the start, existing elements must move to free space.
Step 2: Shift elements to the right
Each element moves one position right to open index 0 for the new element.
Final Answer:
All existing elements shift one position to the right to make space. -> Option B
Quick Check:
Insert at start = shift right [OK]
Hint: Insert at start means shift all elements right [OK]
Common Mistakes:
Assuming new element overwrites first element
Thinking array size grows automatically
Removing last element without reason
2. Which of the following is the correct syntax to insert an element at the beginning of an array in C (assuming space is available)?
easy
A. arr[0] = new_element; for(int i = 1; i <= n; i++) arr[i] = arr[i-1];
B. for(int i = 0; i < n; i++) arr[i+1] = arr[i]; arr[0] = new_element;
C. for(int i = n; i > 0; i--) arr[i] = arr[i-1]; arr[0] = new_element;
D. arr[n] = new_element; for(int i = n-1; i >= 0; i--) arr[i] = arr[i+1];
Solution
Step 1: Identify correct loop direction for shifting
To avoid overwriting, shift elements from end to start (i = n down to 1).
Step 2: Assign new element at index 0
After shifting, place new_element at arr[0].
Final Answer:
for(int i = n; i > 0; i--) arr[i] = arr[i-1]; arr[0] = new_element; -> Option C
Quick Check:
Shift right from end, then insert [OK]
Hint: Shift from end to start to avoid overwrite [OK]
Common Mistakes:
Shifting from start to end causing overwrite
Assigning new element before shifting
Incorrect loop boundaries
3. What will be the content of the array after executing this code?
int arr[5] = {10, 20, 30, 40, 0};
int n = 4;
int new_element = 5;
for(int i = n; i > 0; i--) {
arr[i] = arr[i-1];
}
arr[0] = new_element;
Shift right + insert 5 at start = [5,10,20,30,40] [OK]
Hint: Trace shifts from end, then insert new element at start [OK]
Common Mistakes:
Not shifting last element correctly
Overwriting elements during shift
Forgetting to insert new element at index 0
4. Identify the error in this code snippet that tries to insert an element at the beginning of an array:
int arr[5] = {1, 2, 3, 4, 0};
int n = 4;
int new_element = 0;
for(int i = 0; i < n; i++) {
arr[i+1] = arr[i];
}
arr[0] = new_element;
medium
A. Loop direction causes overwriting of elements during shift.
B. Array size is too small to insert new element.
C. New element is assigned after shifting elements.
D. Loop condition should be i <= n instead of i < n.
Solution
Step 1: Analyze loop direction and assignments
Loop shifts elements from start to end, causing arr[i+1] to overwrite arr[i+1] before it is copied.
Step 2: Correct approach is to shift from end to start
Shifting from end to start prevents overwriting original values during shift.
Final Answer:
Loop direction causes overwriting of elements during shift. -> Option A
Quick Check:
Shift must go backward to avoid overwrite [OK]
Hint: Shift elements backward to avoid overwriting [OK]
Common Mistakes:
Shifting forward overwrites data
Ignoring array size limits
Incorrect loop boundaries
5. Given an array int arr[7] = {2, 4, 6, 8, 10, 0, 0}; with n = 5 elements, write the steps to insert 1 at the beginning and then 0 at the beginning again. What will be the final array content?
hard
A. [0, 1, 2, 4, 6, 8, 10]
B. [0, 1, 2, 4, 6, 8]
C. [0, 1, 2, 4, 6, 8, 10, 0]
D. [1, 0, 2, 4, 6, 8]
Solution
Step 1: Insert 1 at beginning
Shift elements right: arr[5]=arr[4]=10, arr[4]=arr[3]=8, arr[3]=arr[2]=6, arr[2]=arr[1]=4, arr[1]=arr[0]=2; then arr[0]=1. Array: [1, 2, 4, 6, 8, 10]
Step 2: Insert 0 at beginning
Shift elements right again: arr[6]=arr[5]=10, arr[5]=arr[4]=8, arr[4]=arr[3]=6, arr[3]=arr[2]=4, arr[2]=arr[1]=2, arr[1]=arr[0]=1; then arr[0]=0. Array: [0, 1, 2, 4, 6, 8, 10]
Final Answer:
[0, 1, 2, 4, 6, 8, 10] -> Option A
Quick Check:
Two shifts + inserts = [0,1,2,4,6,8,10] [OK]
Hint: Shift right twice, insert each new element at index 0 [OK]
Common Mistakes:
Not updating array size after insertions
Overwriting elements during second insertion
Assuming array can hold more than 6 elements
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.