将结构数组传递给函数并在C中计算平均值?

初学者在这里,我已经尝试了好几个小时,无法正常工作,也在线搜索并且找不到答案。

我正在尝试编写一个程序,在其中输入人的年龄和身高,然后计算每个人的平均值以及年龄与身高的平均比例。每当我将结构传递给getAverage函数时,它都会返回地址(我认为)而不是平均值。

#include <stdio.h>
#include <stdlib.h>

typedef struct person
{
    int age;
    double height;
} Person;

double getAv (Person people[50], int max)
{

    int i;
    double total, retval;
    total = 0;
    for (i=0; i<=max; i++)
    {
        total = total + people[i].age;
    }

    retval = total / max;
    return retval;
}


int main (void)
{
    Person people[50];
    int i;

    while (i++, people[i].age>=0)
    {
        printf ("Person #%d\n", i);

        printf ("enter an age: ");
        scanf ("%d", &people[i].age);

        if (people[i].age<0)
            break;

        printf ("enter a height: ");
        scanf ("%lf", &people[i].height);

        printf ("\n");
    }

    double averageAge;
    averageAge = getAv (&people[50], i);
    printf ("%.1lf\n", averageAge);
}

尚未实施平均身高或比例,只是试图获取目前平均年龄。当我尝试从averageAge = getAv(&people [50],I)中取出&时;我收到一个编译错误,告诉我它需要&。任何帮助,将不胜感激。