C/C++

Работа со структурами. Написать программу для СИ

Известны оценки каждого из 15 студентов, полученные в сессию на экзаменах по трем предметам. Организовать ввод информации по таблице и определить:

а) количество студентов, сдавших сессию без троек и двоек;

б) количество предметов, по которым были получены только оценки "5" и "4";

в) количество пятерок по каждому предмету.
#include <iostream>
#include <iomanip>
using namespace std;

struct student{int8_t val[3]{};};

void print(student* arr,size_t begin, size_t end)
{
cout << "Student: 1 2 3\n";
cout << "==================================\n";
for (size_t it = begin; it <= end; it++)
{
cout << setw(3) << it+1;
for (size_t i = 0; i < 3; i++) cout << setw(10) << (int)arr[it].val[i];
cout << endl;
}
}
int numgood(student* arr, size_t size)
{
int count = 0;
bool chk;
for (size_t i = 0; i < size; i++) {
chk = true;
for (size_t j = 0; j < 3; j++) arr[i].val[j] < 4 ? chk = false : NULL;
chk?count++:NULL;
}
return count;
}
int numgoodprdm(student* arr, size_t size)
{
int count = 0;
bool chk;
for (size_t i = 0; i < 3; i++) {
chk = true;
for (size_t j = 0; j < size; j++) if (arr[j].val[i] < 4) {
chk = false; break;
}
count += chk;
}
return count;
}
int num5(int8_t* tabs, size_t size)
{
int count = 0;
for (size_t i = 0; i < size * 3; i++) tabs[i] == 5 ? count++ : NULL;
return count;
}

int main()
{
srand(time(NULL));
student table[15];
int8_t* tab = &table[0].val[0];
for (size_t i = 0; i < 45; i++) tab[i] = rand() % 4 + 2;
print(table, 0, 14);
cout << endl;
cout << "Num of best: " << numgood(table, 15) << endl;
cout << "Num of good prdm: " << numgoodprdm(table, 15) << endl;
cout << "Num of fives: " << num5(tab, 15);
}
Николай Богданов
Николай Богданов
51 411
Лучший ответ