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()