#include <iostream>
using namespace std;
int main() {
int n, m;
int a[500][500], min = a[0][0];
cin >> n;
//Ввод массива
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
min = a[0][0];
//Поиск минимума
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (a[j][j] > min) {
min = a[j][j];
}
}
}
cout << min;
return 0;
}
ТарасПрогер
2,2691 золотой знак5 серебряных знаков26 бронзовых знаков
задан 5 апр 2022 в 15:47
Вы собираетесь ввести четверть миллиона чисел с клавиатуры? Или генерируйте эти числа, или берите поскромнее размер массива. Не нужно использовать лишние объекты и не нужен никакой вложенный цикл для проверки элементов только главной диагонали. Все очень просто:
const int n = 5;
int a[n][n];
//Ввод массива
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
//Поиск минимума
int min = a[0][0];
for (int j = 1; j < n; j++)
if (a[j][j] < min)
min = a[j][j];
cout << min;
ответ дан 5 апр 2022 в 19:42
AR HovsepyanAR Hovsepyan
15.8k3 золотых знака13 серебряных знаков30 бронзовых знаков
Добавьте условие проверки на нахождение на главной диагонали и объявляйте минимальный элемент после ввода массива
#include <iostream>
using namespace std;
int main() {
int n, m;
int a[500][500], min = a[0][0];
cin >> n;
//Ввод массива
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
min = a[0][0];
//Поиск минимума
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (a[j][j] < min && i == j) {
min = a[j][j];
}
}
}
cout << min;
return 0;
}
vanesicks
4684 серебряных знака15 бронзовых знаков
ответ дан 5 апр 2022 в 16:10
CameLCameL
1,0943 серебряных знака15 бронзовых знаков
6
#include <numeric>
#include <iostream>
using namespace std;
int main()
{
constexpr size_t size = 4; // этапа компиляции
int arr[size][size];
for (size_t i = 0; i < size; i++)
{
for (size_t j = 0; j < size; j++)
{
cin >> arr[i][j];
}
}
int min = numeric_limits<int>::max(); // макс. значение int'а
size_t j = 0;
for (size_t i = 0; i < size; i++)
{
if (arr[i][j] <= min)
min = arr[i][j];
j++; // сдвиг по row
}
cout << min << endl;
}
ответ дан 5 апр 2022 в 16:11
ТарасПрогерТарасПрогер
2,2691 золотой знак5 серебряных знаков26 бронзовых знаков
1
3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
|
1 |
|
Найти минимальный элемент на главной диагонали матрицы04.10.2010, 22:20. Показов 22411. Ответов 24
Найти минимальный элемент на главной диагонали матрицы
0 |
ForEveR В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
||||
04.10.2010, 22:22 |
2 |
|||
shyrik2014,
При условии что матрица квадратная.
0 |
shyrik2014 3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
||||
04.10.2010, 22:51 [ТС] |
3 |
|||
shyrik2014,
При условии что матрица квадратная. а как это выглядит на чистом С?
0 |
ForEveR В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
||||
04.10.2010, 22:54 |
4 |
|||
shyrik2014,
0 |
shyrik2014 3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
||||
04.10.2010, 23:06 [ТС] |
5 |
|||
shyrik2014,
а как это будет выглядеть в полноценной форме с библиотеками, в полной форме программа не отрабатывает
0 |
ForEveR В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
||||
04.10.2010, 23:12 |
6 |
|||
shyrik2014,
0 |
fasked 5038 / 2617 / 241 Регистрация: 07.10.2009 Сообщений: 4,310 Записей в блоге: 1 |
||||
04.10.2010, 23:20 |
7 |
|||
Lavroff, в цикле нахождения минимума счетчик j не нужен, диагональ то одна
1 |
В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
|
04.10.2010, 23:25 |
8 |
fasked, М. Да) Согласен
0 |
3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
|
04.10.2010, 23:31 [ТС] |
9 |
fasked, а можно более компактнее и попроще сделать программу?
0 |
В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
|
04.10.2010, 23:33 |
10 |
shyrik2014, Куда ж еще проще-то? О_о
0 |
5038 / 2617 / 241 Регистрация: 07.10.2009 Сообщений: 4,310 Записей в блоге: 1 |
|
04.10.2010, 23:35 |
11 |
shyrik2014, здесь как бе итак то всего три цикла, из которых два это заполнение и вывод матрицы и только один функциональный %)
1 |
3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
|
04.10.2010, 23:37 [ТС] |
12 |
fasked, если нельзя, то есть пару вопросов по этому коду #define rows,cols объявляем вначале, а потом используем их в матрице, что это такое поясните?
0 |
В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
|
04.10.2010, 23:38 |
13 |
А как насчет того, чтобы их задать?
0 |
3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
|
04.10.2010, 23:46 [ТС] |
14 |
Lavroff, выше задал вопрос
0 |
В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
|
04.10.2010, 23:48 |
15 |
shyrik2014, Макросы. Фактически константы. rows будет заменена на 5.
0 |
3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
|
04.10.2010, 23:57 [ТС] |
16 |
Lavroff, matrix[i][j] = rand() % 99; а что означает это?
0 |
В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
|
05.10.2010, 00:04 |
17 |
shyrik2014, Генерация псевдо-случайного числа от 0 до 99… И запись в его [i][j] элемент матрицы
0 |
3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
|
05.10.2010, 00:12 [ТС] |
18 |
shyrik2014, Генерация псевдо-случайного числа от 0 до 99… И запись в его [i][j] элемент матрицы На этой строке компилятор выдаёт ошибку Function «rand» should have a prototype
0 |
ForEveR В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
||||
05.10.2010, 00:15 |
19 |
|||
shyrik2014, Какая IDE?
Есть в коде?
1 |
shyrik2014 3 / 3 / 2 Регистрация: 31.10.2009 Сообщений: 112 |
||||
05.10.2010, 00:45 [ТС] |
20 |
|||
shyrik2014, Какая IDE?
Есть в коде? Да спасибо, помогло Добавлено через 5 минут Добавлено через 2 минуты Миниатюры
0 |
Дана квадратная матрица размером nxn
. Найти минимальный элемент среди элементов, расположенных ниже главной диагонали, найти максимальный элемент, среди элементов расположенных выше побочной диагонали. Найденные минимальный и максимальный элементы поменять местами и вывести их индексы.
// main_secondary_diagonal.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main(int argc, char* argv[]) { srand(time(NULL)); int size_array; // размер квадратной матрицы setlocale(LC_ALL, "rus"); cout << "Введите размер квадратной матрицы: "; cin >> size_array; // динамическое создание двумерного массива int **arrayPtr = new int* [size_array]; for (int count = 0; count < size_array; count++) arrayPtr[count] = new int [size_array]; for (int counter_rows = 0; counter_rows < size_array; counter_rows++) { for (int counter_columns = 0; counter_columns < size_array; counter_columns++) { arrayPtr[counter_rows][counter_columns] = rand() % 100; // заполнение массива случайными числами cout << setw(2) << arrayPtr[counter_rows][counter_columns] << " "; // вывод на экран двумерного массива } cout << endl; } cout << endl; int min = arrayPtr[1][0], // минимальный елемент массива, ниже главной диагонали row_min = 1, // номер строки минимального элемента column_min = 0; // номер столбца минимального элемента // поиск минимального элемента в массиве, ниже главной диагонали for (int counter_rows = 1; counter_rows < size_array; counter_rows++) { for (int counter_columns = 0; counter_columns < counter_rows ; counter_columns++) { if ( arrayPtr[counter_rows][counter_columns] < min ) { min = arrayPtr[counter_rows][counter_columns]; row_min = counter_rows; column_min = counter_columns; } } } cout << "min" << "[" << (row_min + 1) << "][" << (column_min + 1) << "]" << " = " << min << endl; int max = arrayPtr[0][0], // максимальный элемнет массива, выше побочной диагонали row_max = 0, // номер строки максимального элемента column_max = 0; // номер столбца максимального элемента for (int counter_rows = 0; counter_rows < size_array - 1; counter_rows++) { for (int counter_columns = 0; counter_columns < (size_array - counter_rows - 1); counter_columns++) { if ( arrayPtr[counter_rows][counter_columns] > max ) { max = arrayPtr[counter_rows][counter_columns]; row_max = counter_rows; column_max = counter_columns; } } } cout << "max" << "[" << (row_max + 1) << "][" << (column_max + 1) << "]" << " = " << max << endl; //////////////////перестановка элементов//////////////////////////////////////////////// arrayPtr[row_min][column_min] = max; arrayPtr[row_max][column_max] = min; //////////////////////////////////////////////////////////////////////////////////////// cout << "nМассив после перестановки максимального и минимального элементов:n"; for (int counter_rows = 0; counter_rows < size_array; counter_rows++) { for (int counter_columns = 0; counter_columns < size_array; counter_columns++) { cout << setw(2) << arrayPtr[counter_rows][counter_columns] << " "; // вывод на экран двумерного массива } cout << endl; } cout << endl; cout << "min" << "[" << (row_max + 1) << "][" << (column_max + 1) << "]" << " = " << min << endl; cout << "max" << "[" << (row_min + 1) << "][" << (column_min + 1) << "]" << " = " << max << endl; // удаление двумерного динамического массива for (int count = 0; count < size_array; count++) delete []arrayPtr[count]; system("pause"); return 0; }
Результат работы программы показан ниже:
Вопрос от пользователя:
Питон. Дана квадратная матрица A порядка M. Найти минимальный элемент для
каждой ее диагонали, параллельной главной (начиная с одноэлементной
диагонали A1,M).
Подождите!
Не закрывайте страницу. Нейросеть пишет ответ. Он появится тут.
Этот ответ написан нейросетью.
Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.
Ответ нейросети:
В Python для решения данной задачи необходимо написать функцию, которая получает в качестве аргументов квадратную матрицу A порядка M и возвращает список минимальных элементов для каждой диагонали, параллельной главной.
Для этого можно использовать циклы for для перебора элементов матрицы по диагоналям и создать список, где будут храниться минимальные элементы.
Код функции будет выглядеть следующим образом:
def min_parallel_diag(A): result = [] #список для хранения минимальных элементов for i in range(M-1): #начинаем с одноэлементной диагонали A1,M diag = [] #список для хранения элементов диагонали for j in range(M-i): #перебираем элементы диагонали diag.append(A[j+i][j]) #добавляем элементы диагонали в список result.append(min(diag)) #находим минимальный элемент и добавляем в список результатов return result
Для того, чтобы ознакомиться с работой функции, можно создать квадратную матрицу и вызвать функцию:
A = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]] print(min_parallel_diag(A)) #выводим результат работы функции
На выходе получим список минимальных элементов для каждой параллельной диагонали относительно главной:
[16, 11, 6, 1, 2, 3, 4, 5, 10, 15, 20, 25]
Таким образом, задача решена и можно использовать функцию для любых квадратных матриц порядка M.
⚠️Зарепортить пост!
Чтобы оставить комментарий, необходимо авторизоваться.
Задай любой вопрос нейросети!
она справится с любой поставленной задачей быстрее чем поиск в Яндекс.
Последние вопросы
(c) ChatGPT по русски 2023. Все права защищены. При обнаружении неправомерного контента пишите на [email protected]
uses crt; Type arr=array[1..50,1..50] of integer; procedure InputMatrix(var ar:arr; var n:byte); var i,j:byte; begin Randomize; repeat Write('n='); Readln(n); until n in [1..50]; for i:=1 to n do for j:=1 to n do ar[i,j]:=random(20)-10; end; procedure DiagSumMinMatrix(a:arr; n:byte); var i,j,tmpj:byte; k,sum,min:integer; begin min:=1; for i:=1 to n do for j:=1 to n do if (i=j) and (a[i,j]<min) then begin min:=a[i,j]; tmpj:=j; end; Writeln('Min ',min,' [',tmpj,']'); sum:=0; for i:=1 to n do sum:=sum+a[i,tmpj]; k:=0; for i:=1 to n do if a[i,tmpj]<0 then inc(k); Writeln('Sum ',sum); Writeln('Kol(otr) ',k); end; procedure OutputMatrix(var ar:arr; n:byte); var i,j:byte; begin Writeln('Matrix A'); for i:=1 to n do begin for j:=1 to n do begin Write(ar[i,j]:4); end; Writeln; end; end; var a:arr; i,j,x:byte; begin ClrScr; InputMatrix(a,x); OutputMatrix(a,x); Writeln; DiagSumMinMatrix(a,x); Readln; end.