Есть программа которая должна открывать текстовый файл с ведомостью группы и выводить средний бал по предмету для всех студентов.
#include<iostream.h>//библиотека для ввода, вывода
#include<fstream.h>//библиотека для работы с файлами
#include<string.h>//библиотека для строковых данных
#include<stdlib.h>//библиотека для выхода из программы
#include<conio.h>//библиотека для задержки на экране
#include<stdio.h>
#include<iomanip.h>//библиотека для выравнивания столбцов в таблице данных
const int l=31;//наибольшее возможное количество символов в строке
struct fio
{ //структура fio включает данные студентов:
char fam[l];//фамилии
char im[l];//имена
char ot[l];//отчества
};
struct student
{ //структура student включает данные студентов:
fio f; //ФИО
char gr[l];//группу
int col; //количество баллов
};
struct gruppa
{ //структура gruppa данные групп:
char gr[l]; //название группы
int ng; //количество студентов
};
ifstream in;
ofstream out;
void inputstfile(student s[],int &m);//ввод из файла
void outputst(student s[],int m); //вывод на экран массива студентов
void outputstfile(student s[],int m);//сохранение в файле массива студентов
float srbal(student s[], int m);//средний балл по предмету
//Podprogramma 1//
void inputstfile(student s[],int &m)//ввод из файла
{
m=0;
in>>s[m].f.fam>>s[m].f.im>>s[m].f.ot>>s[m].gr>>s[m].col;
while (in.good())//пока не прекратятся записи в файле
{
m++;
in>>s[m].f.fam>>s[m].f.im>>s[m].f.ot>>s[m].gr>>s[m].col;//ввод из файла ФИО, групп, количества баллов
}
}
//Podprogramma 2//
void outputst(student s[],int m)//вывод на экран массива студентов
{ int i;
for(i=0;i<m;i++)
{
cout<<setw(14)<<setiosflags(ios::left)<<s[i].f.fam
<<setw(11)<<setiosflags(ios::left)<<s[i].f.im
<<setw(15)<<setiosflags(ios::left)<<s[i].f.ot
<<setw(6)<<setiosflags(ios::left)<<s[i].gr
<<setw(10)<<setiosflags(ios::left)<<s[i].col<<endl;
if((i+1)%10==0) getch();//задержка на экране
}
getch();
}
//Podprogramma 3//
void outputstfile (student s[], int m)//сохранение в файле массива студентов
{int i;
out<<"familiya "<<"imya "<<"otchestvo "<<"gruppa "<<"Kolichestvo ballov"<<endl;
for(i=0;i<m;i++)
out<<setw(14)<<setiosflags(ios::left)<<s[i].f.fam//запись в файл фамилий,
<<setw(11)<<setiosflags(ios::left)<<s[i].f.im//имен,
<<setw(15)<<setiosflags(ios::left)<<s[i].f.ot//отчеств
<<setw(6)<<setiosflags(ios::left)<<s[i].gr//названия группы
<<setw(10)<<setiosflags(ios::left)<<s[i].col<<endl;//количества баллов
}
//***Подпрограмма для нахождения среднего балла по предмету*****
float srbal(student s[], int m)
{
int i,sum;
float w;
student t;
sum=0;
for(i=0;i<20;i++)
sum=s[i].col+sum;
w=sum/20;
}
//***Glavnaya programma***
const int N=100;
int main()
{
student a[N];
gruppa b[N];
int n,i,j,k,fl,max;
char file[l];
float w;
cout<<endl<<"imya faila:";
cin>>file;
in.open(file);
if (in==NULL)
{//если не указан путь к файлу, то вывести сообщение "файл не найден"
cout<<"fail ne naiden";
getch;
exit(1);
}
inputstfile(a,n);
in.close();
outputst(a,n);
max=a[0].col;
k=0;
for(i=1;i<n;i++)
if (a[i].col>max) max=a[i].col;
for(i=0;i<n;i++)
if (a[i].col==max)
{fl=1;
for(j=0;j<k;j++)
if(strcmp(a[i].gr,b[j].gr)==0)
{fl=0;
b[j].ng++;
}
if (fl==1)
{strcpy(b[k].gr,a[i].gr);
b[k].ng=1;
k++;
}
}
cout<<" \n";
**************************MY********************** *********
cout<<" \n";
cout<<"Sredniy bal po predmetu:\n"<<" \n";
srbal(w);
/*outputst(a,n);
out.open("resultst.txt");
if(out==NULL) {
cout<<"File ne sozdan";
getch();
exit(1);
}
outputstfile(a,n);
out.close();*/
}
Помогите, пожалуйста, разобраться с функциями и структурами которые здесь применяются и отладить программу. Программа не работает и компилятор выводит ошибку:
"Line 162 error: cannot convert `float' to `student*' for argument `1' to `float srbal(student*, int)' "