Задача, задан массив "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;
}
Я ничего не знаю про твои библиотеки, так как они не прописались в вопросе: Мейл-ответы проглатывают всё, что написано непосредственно в угловых скобках.
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;
}
Я ничего не знаю про твои библиотеки, так как они не прописались в вопросе: Мейл-ответы проглатывают всё, что написано непосредственно в угловых скобках.
Анатолий Зенкин
Огромное спасибо! Выручили!
Руди Галимьянов
Колхоз какой то написали на полстраницы
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
};
/* дальше сами */
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
};
/* дальше сами */
Анатолий Зенкин
Это явно не то. Цикл a1 я задаю произвольно и из него надо вычленить минимальные значения
Вложенным циклом пройдись
Анатолий Зенкин
Ну я пытаюсь это сделать через параметрический цикл, однако меня подводит код.
Похожие вопросы
- Язык программирования Си
- Как на языке программирования Си убрать конкретный напечатанный элемент массива или напечатать его в определенном месте?
- Как на языке программирования си сделать, чтобы при вводе полного бреда программа не поломалась?
- Как в языке программирования СИ осуществлять вызов подпрограммы, которая находится в другом файле?
- Ребята, скажите где можно скачать язык программирования Си, без ++
- Помогите пожалуйста решить задачу по программированию (язык программирования СИ)
- Помогите пожалуйста найти ошибку в задаче (Язык программирования Си)
- Кто знает язык программирования Си++? Можно ли вывести текст по другому?
- Оконное приложение на WinAPI, вопрос про параметры функции WndProc. Язык программирования Си.
- Зависит ли скорость работы программы (скорость обработки данных) от языка программирования? или самой среды программирова