|
wrasde125 0 / 0 / 0 Регистрация: 20.11.2017 Сообщений: 12 |
||||
|
1 |
||||
Найти минимальный элемент побочной диагонали матрицы22.11.2017, 10:02. Показов 12617. Ответов 4 Метки матрица (Все метки)
ЗАДАНИЕ: Задана целая матрица C [4][4]. Найти минимальный элемент её побочной диагонали МОЯ ПРОГРАММА:
Матрицу я построил, всё работает. Объясните пожалуйста, как найти минимальный элемент её побочной диагонали???
0 |
|
San40ys 45 / 41 / 50 Регистрация: 04.04.2015 Сообщений: 80 |
||||
|
22.11.2017, 16:04 |
2 |
|||
0 |
|
wrasde125 0 / 0 / 0 Регистрация: 20.11.2017 Сообщений: 12 |
||||
|
27.11.2017, 15:49 [ТС] |
3 |
|||
|
San40ys, я вставил ваш элемент в код, компиляция проходит без ошибок, но программа всё-равно не выводит нужные элементы (только саму матрицу). Не могли бы вы подсказать, что я опять сделал неправильно??? КОД:
0 |
|
San40ys 45 / 41 / 50 Регистрация: 04.04.2015 Сообщений: 80 |
||||
|
27.11.2017, 17:15 |
4 |
|||
|
wrasde125,
for (int i = 0; i < n; i++)
0 |
|
0 / 0 / 0 Регистрация: 20.11.2017 Сообщений: 12 |
|
|
27.11.2017, 17:20 [ТС] |
5 |
|
San40ys, Спасибо большое! Теперь более-менее разобрался в задаче.
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;
}
Результат работы программы показан ниже:
Всем привет, помогите плиз с задачкой а то не могу сообразить)
Дан массив NxN. Напишите программу на Java которая находит минимальный элемент побочной диагонали, без учёта элемента пересечения главной и побочной диагонали.
Для примера приведена матрица 5х5. Побочная диагональ выделена жирным, минимальный элемент побочной диагонали – красным и подчёркнут:
1 2 3 4 5
5 7 9 2 1
0 9 1 8 7
6 3 6 6 6
99 100 -2 3 1
Мин элемент побочной диагонали найти смог
public class Diagonal {
public static void main(String[] args) {
int[][] array = {
{1, 2, 3, 4, 5},
{5, 7, 9, 2, 1},
{0, 9, 1, 8, 7},
{6, 3, 6, 6, 6},
{99, 100, -2, 3, 1}
};
int min1 = array[0][0];
for (int i = 0; i < array.length; i++) {
if (min1 > array[array.length — 1 — i][i]) {
min1 = array[array.length — 1 — i][i];
}
}
System.out.println(min1);
}
}
И ответ будет 1
Но, как из побочной вычесть основную, чтобы 1ка в центре не учитывалась, а выводился ответ 2?
program gdiagle ;
uses crt;
var
i,j,max,iMax,jMax:integer;
a:array[1..5,1..10] of integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 10 do
begin
a[i,j]:=random(50);
write (a[i,j],' ' )
end;
writeln
end;
writeln ('');
for i:=1 to 5 do
begin
for j:=1 to 10 do
begin
if j=i then
begin
if max < a[i, j] then
begin
max := a[i, j];
iMax := i;
jMax := j;
end;
end;
end;
end;
writeln('Максимум: ', max);
writeln(jmax);
writeln(imax);
end.
Код к задаче: «Как найти минимальный элемент побочной диагонали?»
Смог создать и вывести двумерный массив. Как найти пока ума не приложу))
public class ProjectSample {
public static void main(String[] args) {
int[][] array = {
{1, 2, 4, 5, 6},
{1, 4, 5, 6, 7},
{4, 5, 8, 8, 6},
{5, 6, 3, 2, 1},
{1, 5, 6, 7, 8}
};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println()

