Другие языки программирования и технологии

Задача по языку С++

Одновременный анализ нескольких двумерных массивов. На первом курсе М=40 студентов. Каждый из них в понедельник получает оценку по программированию, во вторник - оценку по математике, в среду - по физике пределах от 2 до 5 каждая, всего в году N=35 недель. Лучшим считается студент, который наибольшее количество недель продержался без троек (т. е. получал не ниже "4"). Сформируйте три целых массива нужного размера. Задайте оценки с помощью генератора случайных чисел. Найдите лучшего студента
Sul@ymon Sultonov
Sul@ymon Sultonov
300
Разделяем задачу на несколько частей
1. Ввод данных
2. для каждого студента выбираем его оценки за неделю и сохраняем минимальную (тут вообще можно записывать 0 для 2 и 3 или 1 для 4 и 5, для упрощения следующего пункта)
3. для каждого студента находим максимальную последовательность оценок 4 или 5
4. находим лучшего студента

Какой из пунктов сложен для выполнения?
PS: сделать все за тебя, пока ты крабишь на миде -> fl.ru
Вовик Сабакаев
Вовик Сабакаев
76 611
Лучший ответ
Sul@ymon Sultonov Как срандомить числа. От 2 до 5? Я помню, что была формула, но не помню как она точно выглядела
Решение задачи
#include
#include

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
const int N = 35, M = 40;
int math[N][M], physics[N][M], informatics[N][M];
srand(time(0));
// Заполнение и вывод оценок студентов
for (int i = 0; i < M; i++)
{
cout << "Студент №" << i + 1 << " получил оценки за год: \n";
cout << "\t\t\t Математика: ";
for (int k = 0; k < N; k++)
{
math[k][i] = (rand() % 4) + 2;
cout << math[k][i] << " ";
}
cout << "\n";
cout << "\t\t\t Физика: ";
for (int k = 0; k < N; k++)
{
physics[k][i] = (rand() % 4) + 2;
cout << physics[k][i] << " ";
}
cout << "\n";
cout << "\t\t\t Информатика: ";
for (int k = 0; k < N; k++)
{
informatics[k][i] = (rand() % 4) + 2;
cout << informatics[k][i] << " ";
}
cout << "\n";
}
cout << endl;
// Запоминаем оценки студентов
int sum = 0;
int score[M];
for (int i = 0; i < M; i++)
{
sum = 0;
for (int j = 0; j < N; j++)
{
if (math[j][i] > 3)
sum += math[j][i];
if (physics[j][i] > 3)
sum += physics[j][i];
if (informatics[j][i] > 3)
sum += informatics[j][i];
}
score[i] = sum;
}
// Определяем лучшего студента
int max = 0;
int bestStudent = 0;
for (int i = 1; i < M; i++)
{
if (max < score[i])
{
max = score[i];
bestStudent = i;
}
}
cout << "Лучший студент №" << bestStudent << "\n";

return 0;
}