Vectores como argumentos de funciones

Completa el siguiente código:


#include <stdio.h>

/* Sumar los n primeros elementos de un vector x */
double sumavec(...) {
    double s=0;
    int i;
    for (i=0; i<n; i++)
        s += x[i];
    return s;
}

int main() {
    int i;
    double x[10], r, r2;
    /* Inicializamos el vector x */
    for (i=0; i<10; i++)
        x[i]=i;
    /* Llamamos a la función para sumar todos los elementos de x */
    r = sumavec(...);
    printf("r=%g\n",r);
    /* Llamamos a la función para sumar los elementos de la segunda mitad de x */
    r2 = sumavec(...);
    printf("r2=%g\n",r2);
    return 0;
}

SOLUCIÓN:

La cabecera de la función sumavec será:

double sumavec(double *x, int n) {

o bien

double sumavec(double x[], int n) {

La primera llamada a sumavec será:

    r = sumavec(x,10); // x equivale a &x[0]

y la segunda llamada:

    r2 = sumavec(&x[5],5); // &x[5] equivale a x+5