Здесь есть несколько проблем.
- Вы не можете вкладывать функции в другие функции, как в языках, таких как Java, C #, Python.
- Вы неправильно передаете массив struct.
- Ваше основное объявление неверно.
Вы хотите написать что-то вроде этого:
struct Student
{
float average;
int ID;
int grades[5];
char firstName[20], lastName[20];
};
float maxAverage(struct Student sTable[])
{
int i;
float max = 0;
for(i = 0;i < 10; ++i)
{
if(sTable[i].value > max)
{
max += sTable[i].average;
}
}
return max;
}
int main(void)
{
struct Student sTable[10];
//initialize sTable
printf("%f", maxAverage(sTable));
return 0;
}
Обратите внимание, что вам не хватает инициализации sTable
.
Более того, вы действительно должны передать длину массива в качестве параметра maxAverage
. Это позволит вам более гибко использовать массивы любой длины.