Simple recursive Summing program
I think I'd prefer something like this:

int findsum(int const *list, int length) { 
    if (0 == length) 
       return 0;
    return list[0] + findsum(list+1, length-1);
}


This follows one of the typical recursive formulations -- basically a function that's almost like an inductive proof. Start by establishing a correct value for the simplest possible base case (or some obvious base case anyway), and then establish a pattern that's correct for some some sort of "Base+1" type of case.