Bird
Raised Fist0
Cprogramming~10 mins

Common array operations - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Common array operations
Start
↓
Declare array
↓
Initialize elements
↓
Access elements by index
↓
Modify elements
↓
Traverse array with loop
↓
Perform operations (sum, search, etc.)
↓
End
This flow shows the basic steps to work with arrays: declare, initialize, access, modify, loop through, and perform operations.
Execution Sample
C
int arr[5] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < 5; i++) {
    sum += arr[i];
}
printf("Sum: %d", sum);
This code creates an array of 5 integers, sums all elements using a loop, and prints the total.
Execution Table
Stepiarr[i]Condition (i<5)Actionsum
101Truesum = 0 + 11
212Truesum = 1 + 23
323Truesum = 3 + 36
434Truesum = 6 + 410
545Truesum = 10 + 515
65-FalseExit loop15
💡 Loop ends when i reaches 5 and condition i < 5 becomes false.
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5Final
i-012345
sum0136101515
arr[i]-12345-
Key Moments - 3 Insights
Why does the loop stop when i equals 5, not when i is greater than 5?
Because the loop condition is i < 5, so when i becomes 5, the condition is false and the loop exits (see execution_table step 6).
Why do we use arr[i] to access elements?
Arrays store elements in order, and arr[i] accesses the element at position i (starting from 0). This is shown in the execution_table where arr[i] changes each step.
What happens if we try to access arr[5]?
Accessing arr[5] is out of bounds since valid indices are 0 to 4. This causes undefined behavior in C and should be avoided.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of sum after step 3?
A3
B6
C10
D15
💡 Hint
Check the 'sum' column at step 3 in the execution_table.
At which step does the loop condition become false?
AStep 6
BStep 4
CStep 5
DStep 3
💡 Hint
Look at the 'Condition (i<5)' column in the execution_table.
If the array had 6 elements instead of 5, how would the loop change?
AThe loop would run fewer times
BThe loop would not run at all
CThe loop would run one more time with i from 0 to 5
DThe loop would run infinitely
💡 Hint
Consider the loop condition i < 5 and how it depends on array size.
Concept Snapshot
Arrays store multiple values of the same type in order.
Access elements by index starting at 0: arr[0], arr[1], ...
Use loops to traverse arrays and perform operations.
Loop condition controls how many elements are processed.
Avoid accessing out-of-bounds indices to prevent errors.
Full Transcript
This lesson shows how to work with arrays in C. First, you declare an array and initialize it with values. Then, you use a loop to access each element by its index, starting from 0 up to one less than the array size. In the example, we sum all elements by adding arr[i] to a sum variable inside the loop. The loop stops when the index reaches the array size, preventing out-of-bounds access. The execution table traces each step, showing how the index and sum change. Key points include understanding the loop condition and safe element access. The quiz tests your understanding of these steps and how changing array size affects the loop.

Practice

(1/5)
1. What does the following C code do?
int arr[5] = {1, 2, 3, 4, 5};
easy
A. Creates an array of 5 integers with values 1 to 5
B. Creates a pointer to an integer
C. Declares a single integer variable
D. Creates a 2D array of integers

Solution

  1. Step 1: Understand the declaration

    The code declares an integer array named arr with size 5.
  2. Step 2: Check the initialization

    The array is initialized with values 1, 2, 3, 4, and 5 in order.
  3. Final Answer:

    Creates an array of 5 integers with values 1 to 5 -> Option A
  4. Quick Check:

    Array declaration with initialization = Creates an array of 5 integers with values 1 to 5 [OK]
Hint: Array size and values match initialization count [OK]
Common Mistakes:
  • Confusing array with pointer declaration
  • Thinking it's a single variable, not an array
  • Assuming it's a 2D array
2. Which of the following is the correct syntax to access the third element of an array named arr?
easy
A. arr(3)
B. arr[2]
C. arr{3}
D. arr[3]

Solution

  1. Step 1: Recall array indexing in C

    Arrays in C use zero-based indexing, so the first element is arr[0].
  2. Step 2: Identify the third element index

    The third element is at index 2, so arr[2] accesses it.
  3. Final Answer:

    arr[2] -> Option B
  4. Quick Check:

    Third element index = 2 [OK]
Hint: Remember C arrays start at index 0 [OK]
Common Mistakes:
  • Using parentheses instead of brackets
  • Using 1-based indexing (arr[3])
  • Using curly braces for access
3. What is the output of this C code?
int arr[4] = {10, 20, 30, 40};
int sum = 0;
for(int i = 0; i < 4; i++) {
    sum += arr[i];
}
printf("%d", sum);
medium
A. 100
B. 90
C. Syntax error
D. 40

Solution

  1. Step 1: Sum all elements in the array

    The loop adds arr[0]=10, arr[1]=20, arr[2]=30, arr[3]=40 to sum.
  2. Step 2: Calculate the total sum

    10 + 20 + 30 + 40 = 100.
  3. Final Answer:

    100 -> Option A
  4. Quick Check:

    Sum of array elements = 100 [OK]
Hint: Add all elements using loop index 0 to size-1 [OK]
Common Mistakes:
  • Off-by-one error in loop causing wrong sum
  • Confusing sum with last element value
  • Syntax errors from missing semicolons
4. Identify the error in this code snippet:
int arr[3] = {1, 2, 3};
for(int i = 0; i <= 3; i++) {
    printf("%d ", arr[i]);
}
medium
A. Array size should be 4
B. printf format specifier is wrong
C. Loop condition should be i < 3, not i <= 3
D. Variable i should be declared outside the loop

Solution

  1. Step 1: Analyze loop condition

    The loop runs from i=0 to i=3 inclusive, so it accesses arr[3].
  2. Step 2: Check array bounds

    Array arr has size 3, valid indices are 0,1,2. Accessing arr[3] causes out-of-bounds error.
  3. Final Answer:

    Loop condition should be i < 3, not i <= 3 -> Option C
  4. Quick Check:

    Array index must be less than size [OK]
Hint: Loop index must be less than array size [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Assuming array size auto-expands
  • Misunderstanding printf format specifier
5. You want to find the largest number in an integer array arr of size n. Which code snippet correctly does this?
hard
A. int max = arr[n]; for(int i = 0; i < n; i++) { if(arr[i] > max) max = arr[i]; }
B. int max = 0; for(int i = 0; i <= n; i++) { if(arr[i] > max) max = arr[i]; }
C. int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] < max) max = arr[i]; }
D. int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] > max) max = arr[i]; }

Solution

  1. Step 1: Initialize max with first element

    Set max = arr[0] to start comparison from first element.
  2. Step 2: Loop from second element to end

    Loop i from 1 to n-1, compare arr[i] with max, update max if arr[i] is larger.
  3. Step 3: Check other options for errors

    int max = 0; for(int i = 0; i <= n; i++) { if(arr[i] > max) max = arr[i]; } uses max=0 which fails if all numbers are negative; loop condition i <= n causes out-of-bounds; int max = arr[n]; for(int i = 0; i < n; i++) { if(arr[i] > max) max = arr[i]; } initializes max with arr[n] which is invalid index; int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] < max) max = arr[i]; } finds minimum instead of maximum.
  4. Final Answer:

    int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] > max) max = arr[i]; } -> Option D
  5. Quick Check:

    Initialize max with first element and compare correctly [OK]
Hint: Start max with arr[0], loop i from 1 to n-1 [OK]
Common Mistakes:
  • Using wrong loop bounds causing out-of-bounds access
  • Initializing max with 0 ignoring negative values
  • Confusing max with min logic
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