Bird
Raised Fist0
Cprogramming~10 mins

Array traversal in C - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Array traversal
Start: i = 0
↓
Check: i < array_length?
No→End traversal
Yes↓
Access array[i
↓
Process element
↓
Increment i
↩Back to Check
We start from the first element, check if the index is within bounds, access and process the element, then move to the next index until all elements are visited.
Execution Sample
C
#include <stdio.h>

int main() {
    int arr[] = {10, 20, 30};
    int n = 3;
    for (int i = 0; i < n; i++) {
        printf("%d\n", arr[i]);
    }
    return 0;
}
This code prints each element of the array one by one.
Execution Table
IterationiCondition (i < n)ActionOutput
100 < 3 = TruePrint arr[0] = 1010
211 < 3 = TruePrint arr[1] = 2020
322 < 3 = TruePrint arr[2] = 3030
433 < 3 = FalseExit loop
💡 i reaches 3, condition 3 < 3 is False, loop ends
Variable Tracker
VariableStartAfter 1After 2After 3Final
iundefined0123
arr[i]N/A102030N/A
Key Moments - 3 Insights
Why does the loop stop when i equals the array length?
Because the condition i < n becomes false at i = 3 (see execution_table row 4), so the loop exits to avoid accessing outside the array.
What happens if we try to access arr[i] when i is equal to n?
Accessing arr[n] is out of bounds and causes undefined behavior. The loop condition prevents this by stopping before i reaches n (see execution_table).
Why do we start i from 0 instead of 1?
Array indexes in C start at 0, so the first element is arr[0]. Starting at 0 ensures we visit all elements correctly (see variable_tracker for i values).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i during the third iteration?
A1
B2
C3
D0
💡 Hint
Check the 'i' column in execution_table row 3.
At which iteration does the loop condition become false?
AIteration 4
BIteration 3
CIteration 2
DIteration 1
💡 Hint
Look at the 'Condition (i < n)' column in execution_table row 4.
If the array length n was 4 instead of 3, how many iterations would the loop run?
A5
B3
C4
D2
💡 Hint
The loop runs while i < n, so if n=4, i goes from 0 to 3 (4 iterations).
Concept Snapshot
Array traversal in C:
- Use a for loop: for(int i=0; i<n; i++)
- Start i at 0 (first index)
- Continue while i < n (array length)
- Access elements as arr[i]
- Stops before i reaches n to avoid out-of-bounds
Full Transcript
Array traversal means visiting each element of an array one by one. We start with an index i at 0, the first element. We check if i is less than the array length n. If yes, we access arr[i] and do something with it, like print it. Then we increase i by 1 and repeat. When i equals n, the condition fails and the loop stops. This prevents accessing outside the array, which is unsafe. The example code prints each element of the array. The execution table shows each step: the index i, the condition check, the action, and the output. The variable tracker shows how i and arr[i] change over time. Common confusions include why the loop stops at i = n, why we start at 0, and what happens if we access arr[n]. The quiz questions help check understanding of these steps.

Practice

(1/5)
1. What does array traversal mean in C programming?
easy
A. Adding elements to the array
B. Deleting elements from the array
C. Visiting each element of the array one by one
D. Sorting the array elements

Solution

  1. Step 1: Understand the term 'array traversal'

    Array traversal means going through each element in the array in order.
  2. Step 2: Match the definition with options

    Only Visiting each element of the array one by one describes visiting each element one by one, which is the correct meaning.
  3. Final Answer:

    Visiting each element of the array one by one -> Option C
  4. Quick Check:

    Array traversal = visiting elements [OK]
Hint: Traversal means visiting all elements one by one [OK]
Common Mistakes:
  • Confusing traversal with adding or deleting elements
  • Thinking traversal means sorting
  • Assuming traversal skips elements
2. Which of the following is the correct syntax to traverse an array arr of size n in C?
easy
A. for(int i = 0; i < n; i++)
B. for(int i = 1; i <= n; i++)
C. for(int i = 1; i < n; i++)
D. for(int i = 0; i <= n; i++)

Solution

  1. Step 1: Understand array indexing in C

    Arrays start at index 0 and go up to n-1 for size n.
  2. Step 2: Check loop conditions

    The loop must start at 0 and run while i is less than n (not equal), so for(int i = 0; i < n; i++) is correct.
  3. Final Answer:

    for(int i = 0; i < n; i++) -> Option A
  4. Quick Check:

    Loop from 0 to n-1 = correct traversal [OK]
Hint: Loop from 0 to less than n for array traversal [OK]
Common Mistakes:
  • Using <= n causes out-of-bounds error
  • Starting loop at 1 misses first element
  • Using wrong loop condition
3. What will be the output of the following code?
int arr[] = {5, 10, 15};
for(int i = 0; i < 3; i++) {
    printf("%d ", arr[i]);
}
medium
A. 5 10 15 0
B. 15 10 5
C. 10 15 5
D. 5 10 15

Solution

  1. Step 1: Understand the array elements

    The array contains 5, 10, and 15 in order at indices 0, 1, and 2.
  2. Step 2: Trace the loop output

    The loop prints elements from index 0 to 2 in order, so output is "5 10 15 "
  3. Final Answer:

    5 10 15 -> Option D
  4. Quick Check:

    Print elements in order = 5 10 15 [OK]
Hint: Prints elements in order from index 0 to n-1 [OK]
Common Mistakes:
  • Reversing order of output
  • Printing extra zero
  • Starting loop at wrong index
4. Identify the error in the following code snippet for traversing an array arr of size 5:
for(int i = 0; i <= 5; i++) {
    printf("%d ", arr[i]);
}
medium
A. Loop condition should be i < 5 to avoid out-of-bounds access
B. Loop variable should start from 1 instead of 0
C. Array size should be 6 instead of 5
D. No error, code is correct

Solution

  1. Step 1: Check loop condition

    The loop runs while i <= 5, so i goes from 0 to 5 inclusive (6 iterations).
  2. Step 2: Analyze array indexing

    Array indices go from 0 to 4 for size 5. Accessing arr[5] is out-of-bounds and causes error.
  3. Final Answer:

    Loop condition should be i < 5 to avoid out-of-bounds access -> Option A
  4. Quick Check:

    Use i < size to avoid errors [OK]
Hint: Use i < size, not i <= size, to avoid out-of-bounds [OK]
Common Mistakes:
  • Using <= instead of <
  • Starting loop at 1
  • Ignoring array size limits
5. Given an integer array arr of size n, write a code snippet to find the sum of all elements using array traversal. Which of the following is correct?
hard
A. int sum = 0; for(int i = 1; i < n; i++) { sum += arr[i]; }
B. int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; }
C. int sum = 0; for(int i = 0; i <= n; i++) { sum += arr[i]; }
D. int sum = 0; for(int i = n - 1; i >= 0; i--) { sum += arr[i]; }

Solution

  1. Step 1: Understand array indexing and loop range

    Array indices go from 0 to n-1, so loop must run i from 0 to less than n.
  2. Step 2: Check each option for correctness

    int sum = 0; for(int i = 0; i <= n; i++) { sum += arr[i]; } uses i <= n, which accesses arr[n] (out-of-bounds). int sum = 0; for(int i = 1; i < n; i++) { sum += arr[i]; } starts at 1, missing arr[0]. int sum = 0; for(int i = n - 1; i >= 0; i--) { sum += arr[i]; } correctly sums all elements in reverse order, but the question asks for traversal in forward order. int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } correctly sums all elements from 0 to n-1 in forward order.
  3. Final Answer:

    int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } -> Option B
  4. Quick Check:

    Loop from 0 to n-1 sums all elements [OK]
Hint: Sum elements by looping i from 0 to less than n [OK]
Common Mistakes:
  • Using i <= n causing out-of-bounds
  • Starting loop at 1 missing first element
  • Looping backwards with wrong indices
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