Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на языке программирования С++

Tvoy Bata Ученик (68), на голосовании 4 месяца назад
Условие
У Андрея есть друг Иннокентий, который так же первый год учится в Школе Чародейства и Волшебства. Сегодня они оба получили на почту таблицу, в которой зафиксировано, сколько баллов заработал каждый ученик факультета в каждый из дней учебного года. В этой таблице N строк, каждая строка - это оценки каждого ученика, и M столбцов, каждый столбец содержит оценки одного из учебных дней. Ученики и дни пронумерованы, начиная с нуля. Андрей в этом списке идет под номером 0, а Иннокентий - номером 3.

Иннокентий узнал о том, что у Андрея есть программа, которая помогает ему выявить самый удачный день, в который он заработал больше всего баллов. Если таких дней было несколько, то программа Андрея выводит номер последнего самого удачного дня

Вот программа Андрея:

int n, m, a[100][100], max = 0;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}

for (int j = 0; j < m; j++) {
if (a[0][j] >= a[0][max]) max = j;
}
cout << max;
Иннокентию интересно, какой из дней был для него, наоборот, самым неудачным, а если таких дней несколько, то узнать номер первого самого неудачного дня. Помогите Иннокентию переделать программу Андрея

Формат входных данных
Первая строка содержит два натуральных числа N (4≤N≤100) и M (1≤M≤100) – количество учеников и дней соответственно.

Следующие N строк содержат по M целых чисел (|aij|≤1000) – результаты учеников.

Формат выходных данных
Требуется вывести искомый номер дня.

Примеры
ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
4 3
1 5 -1
7 -9 2
-4 6 4
4 1 -1 2
Голосование за лучший ответ
Татьяна Просветленный (36384) 5 месяцев назад
 #include  
using namespace std;

int main() {
int n, m;
cin >> n >> m;

int a[100][100];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}

int minDay = 0;
for (int j = 1; j < m; j++) {
if (a[3][j] < a[3][minDay]) {
minDay = j;
}
}

cout << minDay;
return 0;
}
Объяснение
Сначала считываем размеры таблицы n и m.
Затем считываем оценки всех учеников за все дни в массив a.
Для нахождения самого неудачного дня для Иннокентия (который идет под номером 3), инициализируем переменную minDay нулем.
Проходим по всем дням (столбцам) и проверяем, если текущий день имеет меньшую оценку, чем уже сохраненная в minDay, обновляем minDay.
В конце выводим значение minDay.
Этот алгоритм находит первый день с минимальной оценкой для ученика под номером 3, что соответствует условиям задачи.
Похожие вопросы