В группе 30 студентов, каждый из которых успешно сдал экзаменационную сессию, в которую входило 3 экзамена (заданные в виде двухмерного массива; генерируется случайным образом в пределах от 0 до 5). Определить: а) средний балл каждого экзамена; б) количество студентов, сдали все экзамен на "хорошо" и "отлично"; в) сколько студентов получат стипендию, если условием ее получения является превышение среднего балла студента по результатам сессии значение 4.0. Результаты вывести на экран.
#include <stdio.h>
#include <math.h>
#include <random>
#include <Windows.h>
using namespace std;
int random(int min, int max)
{
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dis(min, max);
return dis(gen);
}
void fill_array(int p[30][3])
{
for (int i = 0; i < 30; i++)
{
for (int j = 0; j < 3; j++)
{
p[i][j] = random(0, 5);
}
}
}
void get_array(int p[30][3])
{
for (int i = 0; i < 30; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d ", p[i][j]);
}
printf("\n");
}
printf("\n");
}
void count_array(int p[30][3])
{
int mark_count = 0;
double ser_student = 0;
int good_mark = 0;
int perfect_mark = 0;
int stytendia_count = 0;
for (int i = 0; i < 30; i++)
{
for (int j = 0; j < 3; j++)
{
mark_count += p[i][j];
}
ser_student = mark_count / 3.0;
if (ser_student >= 4)
{
good_mark++;
}
else if (ser_student == 5)
{
perfect_mark++;
}
if (ser_student >= 4)
{
stytendia_count++;
}
printf("Середній бал студента під номером %i дорівнює: %lf \n", i + 1, ser_student);
mark_count = 0;
ser_student = 0;
}
printf("Кількість студентів, які склали іспит на \"добре\": %d \n", good_mark);
printf("Кількість студентів, які склали іспит на \"відмінно\": %d \n", perfect_mark);
printf("Кількість студентів, які отримають стипедію: %d \n", stytendia_count);
}
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
int arr[30][3];
fill_array(arr);
get_array(arr);
count_array(arr);
system("pause");
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей