1 / 1 / 0 Регистрация: 29.04.2013 Сообщений: 16 |
|
1 |
|
Найти номер строки и столбца двумерного массива для минимального элемента этого массива06.05.2013, 14:52. Показов 10239. Ответов 3
Visual C ++ 2005 Express Edition
0 |
Genn55 413 / 250 / 118 Регистрация: 26.12.2012 Сообщений: 786 |
||||
06.05.2013, 15:54 |
2 |
|||
Наверное так.
1 |
1 / 1 / 0 Регистрация: 29.04.2013 Сообщений: 16 |
|
06.05.2013, 17:36 [ТС] |
3 |
Спасибо, надеюсь заработает.
0 |
Кристина94 1 / 1 / 0 Регистрация: 29.04.2013 Сообщений: 16 |
||||
08.05.2013, 16:52 [ТС] |
4 |
|||
Наверное так.
Спасибо надеюсь заработает
0 |
Большое спасибо.
Пример кода для поиска индекса минимального значения
import pandas as pd
df = pd.DataFrame({
'restaurant_id': [101,102,103,104,105,106,107],
'address': ['A','B','C','D', 'E', 'F', 'G'],
'city': ['London','London','London','Oxford','Oxford', 'Durham', 'Durham'],
'sales': [10,500,48,12,21,10,14],
'my': [1,-1,48,-12.0,21,16,12]
})
print(df[df['city']=='Durham'][['sales','my']].idxmin())
результатом будет индексы минимальных значений строк если ‘city’ == ‘Durham’
sales 5 #значение 10
my 6 #значение 12
dtype: int64
Уровень сложности:
- Задание
- Решение
Составить программу, которая будет генерировать случайные числа в интервале [a;b]
и заполнять ими двумерный массив размером 10 на 10. В массиве необходимо найти номер строки с минимальным элементом. Поменять строки массива местами, строку с минимальным элементом и первую строку массива. Организовать удобный вывод на экран.
Кроме создания двумерных динамических массивов, вам понадобится генератор случайных чисел. Когда массив создан и заполнен, нужно организовать в нем поиск минимального элемента. Пример работы программы:
#include <iostream> #include <iomanip> //#include <ctime> #include <cstdlib> using namespace std; int main() { srand(time(NULL)); double a, b; // границы отрезка [a,b] cout << "Введите число а: "; cin >> a; cout << "Введите число в: "; cin >> b; double matrix[10][10]; // матрица случайных чисел // инициализация двумерного массива случайными числами for (int counter_rows = 0; counter_rows < 10; counter_rows++) for (int counter_columns = 0; counter_columns < 10; counter_columns++) matrix[counter_rows][counter_columns] = (double(rand()) / RAND_MAX) * (b - a) + a; // генерация случайных вещестчвенных чисел равномерно распределённых на отрезке [a,b] cout << "nСгенерированный массив вещественных чисел" << endl; // вывод сгенерированного массива for (int counter_rows = 0; counter_rows < 10; counter_rows++) { for (int counter_columns = 0; counter_columns < 10; counter_columns++) cout << setw(7) << fixed << setprecision(3) <<matrix[counter_rows][counter_columns]; cout << endl; } double min = matrix[0][0]; // переменная, для хранения минимального значения int nom; // порядковый номер строки с минимальным элеиентом // поиск минимального элемента в массиве for (int counter_rows = 0; counter_rows < 10; counter_rows++) { for (int counter_columns = 0; counter_columns < 10; counter_columns++) { if (matrix[counter_rows][counter_columns] < min ) { min = matrix[counter_rows][counter_columns]; // сохраняем значение минимального элемента nom = counter_rows; // запоминаем номер строки } } } cout << "nНомер строки с минимальным элементом: " << (nom + 1) << endl; cout << "Минимальный элемент: " << min << endl; // перестановка строк if (nom != 0) // если минимальный элемент не содержится в первой строке { double temp[10]; // временный массив для хранения первой строки for (int counter_columns = 0; counter_columns < 10; counter_columns++) temp[counter_columns] = matrix[0][counter_columns]; // сохраняем значения первой строки во временный массив for (int counter_columns = 0; counter_columns < 10; counter_columns++) matrix[0][counter_columns] = matrix[nom][counter_columns]; // сохраняем значения строки с минимальным элементом в перой строке двумерного масссива for (int counter_columns = 0; counter_columns < 10; counter_columns++) matrix[nom][counter_columns] = temp[counter_columns]; // перемещаем значения из временного массива на место строки с мин элементом // вывод массива с перестановленными строками cout << "nМассив с перестановленными строками" << endl; for (int counter_rows = 0; counter_rows < 10; counter_rows++) { for (int counter_columns = 0; counter_columns < 10; counter_columns++) cout << setw(7) << fixed << setprecision(3) << matrix[counter_rows][counter_columns]; cout << endl; } } // конец if return 0; }
Результат:
CppStudio.com
Введите число а: 3
Введите число в: 9
Сгенерированный массив вещественных чисел
4.331 3.406 5.992 7.247 4.044 7.214 5.284 8.227 8.799 3.479
3.458 6.928 8.264 7.817 3.798 7.376 8.919 3.802 7.556 6.523
5.332 6.940 5.754 8.261 3.766 5.582 4.351 3.658 6.841 3.788
3.602 8.172 4.194 6.593 6.419 5.238 4.808 8.703 4.466 4.606
3.182 4.924 8.534 8.445 3.741 3.332 6.821 3.660 4.134 5.377
7.183 6.466 3.318 3.937 5.726 4.084 6.519 7.078 4.742 4.360
7.865 5.344 3.531 3.060 8.937 6.950 5.298 4.745 6.653 6.764
6.352 6.835 8.688 5.886 6.280 3.429 6.218 4.101 4.089 7.351
6.479 8.273 4.817 6.797 3.210 7.543 7.880 6.729 5.621 3.623
8.089 4.486 5.967 8.620 4.546 5.904 6.570 6.844 7.649 4.223
Номер строки с минимальным элементом: 7
Минимальный элемент: 3.060
Массив с перестановленными строками
7.865 5.344 3.531 3.060 8.937 6.950 5.298 4.745 6.653 6.764
3.458 6.928 8.264 7.817 3.798 7.376 8.919 3.802 7.556 6.523
5.332 6.940 5.754 8.261 3.766 5.582 4.351 3.658 6.841 3.788
3.602 8.172 4.194 6.593 6.419 5.238 4.808 8.703 4.466 4.606
3.182 4.924 8.534 8.445 3.741 3.332 6.821 3.660 4.134 5.377
7.183 6.466 3.318 3.937 5.726 4.084 6.519 7.078 4.742 4.360
4.331 3.406 5.992 7.247 4.044 7.214 5.284 8.227 8.799 3.479
6.352 6.835 8.688 5.886 6.280 3.429 6.218 4.101 4.089 7.351
6.479 8.273 4.817 6.797 3.210 7.543 7.880 6.729 5.621 3.623
8.089 4.486 5.967 8.620 4.546 5.904 6.570 6.844 7.649 4.223
Следующие статьи помогут вам в решении данной задачи:
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.
DjAlex77 Пользователь Сообщений: 116 |
Всем доброго времени суток! Уважаемые форумчане помогите пожалуйста: Дальше думаю смогу сам: Для чего нужно, если кому интересно: Заранее Благодарен! Прикрепленные файлы
|
БМВ Модератор Сообщений: 21621 Excel 2013, 2016 |
В H формула, но куда её вставлять далее я честно говоря не понял. По вопросам из тем форума, личку не читаю. |
DjAlex77 Пользователь Сообщений: 116 |
БМВ, Спасибо большое. |
DjAlex77 Пользователь Сообщений: 116 |
Мне удалось получить номер нужной строки через формулу ДМИН. Формула коротенькая, пришлось только добавить столбец с номерами строк. Вот бы кто помог с макросом данной формулы?! |
БМВ Модератор Сообщений: 21621 Excel 2013, 2016 |
#5 25.05.2018 09:00:43
Это формула массива вводится CTRL+SHIFT+ENTER Ну а так, если есть возможность использовать доп. столбец, то в большинстве случаев это только снижает нагрузку, ну и соответственно делает формулы компактнее По вопросам из тем форума, личку не читаю. |
||
buchlotnik Пользователь Сообщений: 3863 Excel 365 Бета-канал |
#6 25.05.2018 09:01:55
это формула массива — после редактирования нажимайте Ctrl + Shift + Enter Прикрепленные файлы
Изменено: buchlotnik — 25.05.2018 09:17:48 Соблюдение правил форума не освобождает от модераторского произвола |
||
DjAlex77 Пользователь Сообщений: 116 |
БМВ, buchlotnik, |
БМВ Модератор Сообщений: 21621 Excel 2013, 2016 |
buchlotnik, Тезка, привет. Ну при условии корректной сортировки дат по возрастанию — да, можно короче, это я перебдил. По вопросам из тем форума, личку не читаю. |
DjAlex77 Пользователь Сообщений: 116 |
БМВ, У меня как раз даты не по порядку сверху вниз, а в разнобой. |
DjAlex77 Пользователь Сообщений: 116 |
БМВ, Подправьте пожалуйста формулу, чтоб не учитывала строки с пустыми ячейками в столбце дат. |
DjAlex77 Пользователь Сообщений: 116 |
#11 28.06.2018 07:36:50 Всем доброго времени суток. {=ЕСЛИОШИБКА(ОКРУГЛ(ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ($AW$7:$AW$40>0;$B$7:$B$40+СТРОКА($B$7:$B$40)/10^5);1);1)*10^5;0);0)} Помогите пожалуйста, как подправить формулу, чтоб не учитывала строки с пустыми ячейками в столбце дат ($B$7:$B$40)? Изменено: DjAlex77 — 28.06.2018 07:46:06 |
Формулировка задачи:
2. В массиве необходимо найти номер строки с минимальным элементом. Поменять местами строку с минимальным элементом и первую строку массива. Найти диапазон значений. Организовать удобный вывод на экран. (-25, 25,
Код к задаче: «В массиве необходимо найти номер строки с минимальным элементом. Поменять местами строку с минимальным элементом и пе»
textual
begin var a:=ReadArrReal(ReadlnInteger('n=')); WritelnFormat('Диапазон значений от {0} до {1}',a.Min,a.Max); Swap(a[0],a[a.IndexMin]); Writeln('Полученный массив:',a); end.
Полезно ли:
10 голосов , оценка 3.200 из 5