Логику прогрвммы менять.
void vvod(gr&d)
{
int i=0,n,j;
cout<<" vvedite kolichestvo sctudentov"<<endl;
cin>>n;
cout<<"vvedite fio,kolichestvo propuskov, kolichestvo progulov ,ocenki";
for (;i<n;i++)
{
cin >>d.fio>>d.kpr>>d.kgod;
for(j=0;j<5;j++)
{
cout<<"ocenki"<<endl;
cin>>d.oc[j];
}
}
}
Например тут. Сколько ты заносиш студентов в 1 запись? Тогда зачем тут вопрос
cout<<" vvedite kolichestvo sctudentov"<<endl;
cin>>n;
Посчитай, количество элементов, которое ты запрашиваеш у пользователя
cout<<"vvedite fio,kolichestvo propuskov, kolichestvo progulov ,ocenki";
Я насчитал 4
А программа запрашивает?
cin >>d.fio>>d.kpr>>d.kgod;
Вроде как 3 всего.
Не стал шерстить дальнейшую логику.