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

Массивы данных на языке программирования СИ.

Задача, задан массив "a" размером 4x4 (float). В каждой строке необходимо найти минимальное значение и занести в новый одномерный массив "a1" . Разрешено использовать библиотеки
#include
#include
Как?
int[4][4] a;
int[4] a1;

Первый индекс матрицы a — это индекс строки (от 0 до 3).
Второй — индекс столбца (тоже от 0 до 3).

К одной ячейке матрицы a мы обращаемся так:
a[индекс строки] [индекс столбца]

Для примера найдем минимальное значение в нулевой строке.
Для начала считаем, что нулевая ячейка в этой строке (a[0 строка] [0 столбец]) содержит минимальное значение. Потом сравним это значение с остальными значениями в нулевой строке. Если найдем что-то еще меньшее, то новую находку будем считать минимальной.

int min = a[0][0];
for (int j = 1; j < 4; j++) {
if (a[0][j] < min)
min = a[0][j];
}

Готово! Теперь min хранит в себе наименьшее значение из нулевой строки матрицы a.

Запишем его в массив a1:
a1[0] = min;

Однако эту нехитрую операцию — поиск минимального и запись в a1 — нужно проделать не только для нулевой строки, но для всех четырех строк матрицы a, от 0-й до 3-й.

С этим может справиться цикл, бегущий по строкам.
Пусть в новом цикле будет меняться переменная i.

Обернем вышеуказанный код для одной строчки в цикл по переменной i.
И подставим i вместо нуля везде, где указан индекс строки 0.

Было:

int min = a[0][0];
for (int j = 1; j < 4; j++) {
if (a[0][j] < min)
min = a[0][j];
}
a1[0] = min;

Стало:

for (int i = 0; i < 4; i++) {
int min = a[i][0];
for (int j = 1; j < 4; j++) {
if (a[i][j] < min)
min = a[i][j];
}
a1[i] = min;
}

Я ничего не знаю про твои библиотеки, так как они не прописались в вопросе: Мейл-ответы проглатывают всё, что написано непосредственно в угловых скобках.
Gena Lyaskovskiy
Gena Lyaskovskiy
66 578
Лучший ответ
Анатолий Зенкин Огромное спасибо! Выручили!
Руди Галимьянов Колхоз какой то написали на полстраницы
inline float max(float a, float b) {
return a > b? a : b;
}

float a1[4], a[4][4] = {
1.1, 1.2, 1.3, 1.4,
2.1, 2.2, 2.3, 2.4,
3.1, 3.2, 3.3, 3.4,
4.1, 4.2, 4.3, 4.4
};

/* дальше сами */
Серега М
Серега М
73 664
Анатолий Зенкин Это явно не то. Цикл a1 я задаю произвольно и из него надо вычленить минимальные значения
Вложенным циклом пройдись
Анатолий Зенкин Ну я пытаюсь это сделать через параметрический цикл, однако меня подводит код.

Похожие вопросы