The sum of an array is the result of adding every element once. This is the classic accumulator pattern: start at 0, then total += value for each item.
total = 0
+ 1 → total = 1
+ 2 → total = 3
+ 3 → total = 6
+ 4 → total = 10
+ 5 → total = 15
Sum = 15
Code
C Programs
Start with a fixed array and a simple helper. Then read values from input, and finish by tracing a running total with negatives.
Example 1 — Sum of a Fixed Array
Use a for loop to add every element into an accumulator.
C
#include <stdio.h>
int sum_array(int arr[], int n)
{
int total = 0;
int i;
for (i = 0; i < n; i++)
total += arr[i];
return total;
}
int main(void)
{
int array[] = { 1, 2, 3, 4, 5 };
int n = 5;
printf("Sum of the array elements: %d\n", sum_array(array, n));
return 0;
}
Output
Sum of the array elements: 15
How It Works
total starts at 0.
The loop visits 1, 2, 3, 4, then 5.
Each visit does total += arr[i].
The running values are 1, 3, 6, 10, then 15.
Return the final total after the loop.
Example 2 — Sum with User Input
Read n, fill an array, then reuse the same summing helper.
C
#include <stdio.h>
int sum_array(int arr[], int n)
{
int total = 0;
int i;
for (i = 0; i < n; i++)
total += arr[i];
return total;
}
int main(void)
{
int n, i;
int arr[100];
printf("Enter number of elements: ");
scanf("%d", &n);
if (n < 0 || n > 100)
{
printf("n must be between 0 and 100.\n");
return 1;
}
for (i = 0; i < n; i++)
{
printf("Enter element %d: ", i + 1);
scanf("%d", &arr[i]);
}
printf("Sum of the array elements: %d\n", sum_array(arr, n));
return 0;
}
Output
Enter number of elements: 5
Enter element 1: 1
Enter element 2: 2
Enter element 3: 3
Enter element 4: 4
Enter element 5: 5
Sum of the array elements: 15
How It Works
Read the length n and reject an invalid size.
Fill arr in a second loop with scanf.
Call sum_array — input and summing stay separate.
If n is 0, the loop never runs and the sum is 0.
Same helper as Example 1, so testing stays easy.
Example 3 — Running Total with Negatives
Print the accumulator after each step so negatives are easy to see.
C
#include <stdio.h>
int main(void)
{
int arr[] = { 10, -2, 7 };
int n = 3;
int total = 0;
int i;
printf("Running total:\n");
for (i = 0; i < n; i++)
{
total += arr[i];
printf(" after %+d: %d\n", arr[i], total);
}
printf("Final sum: %d\n", total);
return 0;
}
Output
Running total:
after +10: 10
after -2: 8
after +7: 15
Final sum: 15
How It Works
Start at 0, then add 10 → 10.
Add -2 → 8 (no special case for negatives).
Add 7 → 15.
%+d shows a sign on each added value.
Tracing the running total is a strong whiteboard habit.
Edge Cases & Pitfalls
Check these before calling the solution done.
Empty
Sum is 0
When n == 0, the loop never runs, so the accumulator stays at 0.
Negatives
Just add them
Do not take absolute values unless the problem asks for that.
Overflow
Use a wider type if needed
Very large int arrays may need long for the accumulator.
Length
Pass n correctly
C arrays do not know their size — always pass n with the array.
Analysis
Time and Space Complexity
Program
Time
Extra space
for loop sum
O(n)
O(1)
User-input build + sum
O(n)
O(n) for the array
Running-total trace
O(n)
O(1)
You must look at every element at least once, so O(n) is optimal for the general case.
Remember
Key Takeaways
Pattern: accumulator starts at 0, then adds each element once.