Побочная диагональ матрицы программирование

Главные и побочные диагонали матрицы

Всем доброго времени суток
Очень интересует вопрос операций над главными и побочными диагоналями, пока что я плохо в этом разбираюсь. Ну, например, задание: матрица 3х3, найти максимальный элемент во всей матрице и минимальный в побочной диагонали и поменять их местами.
Эта тема «для научного интереса», хочу понять, как работать с диагоналями в шарпе. Например, вот мой код. С поиском максимального значения элементов матрицы проблем нет, как менять элементы местами мне также известно. Но вот минимальный элемент побочной диагонали не ищет. Я буду очень благодарна любой вашей помощи. Скорее всего, есть другие методы работы с диагоналями и буду очень рада, если вы приведёте пример. Заранее большое спасибо

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 26 27 28 29 30 31 32 33
static void Main(string[] args) { int[,] arr = new int[3, 3]; int[] diagonal = new int[3]; for (int i = 0; i  arr.GetLength(0); i++) for (int j = 0; j  arr.GetLength(1); j++) { Console.WriteLine("Введите элементы массива"); arr[i, j] = Convert.ToInt32(Console.ReadLine()); } int maxelem = arr[0, 0]; for (int i = 0; i  arr.GetLength(0); i++) for (int j = 0; j  arr.GetLength(1); j++) { if (arr[i, j] > maxelem) maxelem = arr[i, j]; } Console.WriteLine(maxelem); Console.WriteLine("______________"); for (int i = 0; i  arr.GetLength(0); i++) { for (int j = 0; j  arr.GetLength(1); j++) Console.Write(String.Format("", arr[i, j])); Console.WriteLine(); } int minelem = diagonal[0]; diagonal[0] = arr[0, 2]; diagonal[1] = arr[1, 1]; diagonal[2] = arr[2, 0]; for (int i = 0; i  diagonal.Length; i++) if (diagonal[i]  minelem) minelem = diagonal[i]; Console.WriteLine(minelem);

Источник

Квадратная матрица, главная и побочные диагонали

Дана квадратная матрица размером nxn . Найти минимальный элемент среди элементов, расположенных ниже главной диагонали, найти максимальный элемент, среди элементов расположенных выше побочной диагонали. Найденные минимальный и максимальный элементы поменять местами и вывести их индексы.

// main_secondary_diagonal.cpp: определяет точку входа для консольного приложения. #include «stdafx.h» #include #include using namespace std; int main(int argc, char* argv[]) < srand(time(NULL)); int size_array; // размер квадратной матрицы setlocale(LC_ALL, "rus"); cout > 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 cout cout > > cout 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 cout 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

Результат работы программы показан ниже:

Введите размер квадратной матрицы: 5 85 0 69 71 20 31 1 7 12 10 93 19 8 18 18 1 35 41 98 41 45 36 73 22 66 min[4][1] = 1 max[3][1] = 93 Массив после перестановки максимального и минимального элементов: 85 0 69 71 20 31 1 7 12 10 1 19 8 18 18 93 35 41 98 41 45 36 73 22 66 min[3][1] = 1 max[4][1] = 93

Источник

Вывести элементы побочной диагонали матрицы

Условие
Дан двумерный массив размера N×N. Требуется вывести на экран все элементы его побочной диагонали, начиная с элемента, расположенного в правом верхнем углу.

Формат входных данных
С клавиатуры вводится натуральное число N (N≤500). Следующие N строк содержат по N целых чисел, разделенных пробелом — элементы массива. Все числа не превосходят 1000 по модулю.
Формат выходных данных
Требуется вывести через пробел N целых чисел — элементы побочной диагонали массива.

входные данные
3
1 2 3
4 5 6
7 8 9
выходные данные
3 5 7

Вывести на экран все элементы побочной диагонали матрицы
Дан двумерный массив размера N×N. Требуется вывести на экран все элементы его побочной диагонали.

Вывести элементы диагоналей, параллельных побочной диагонали матрицы
Доброго времени суток! Есть у меня задание: Два дня долбусь с выводом диагоналей матрицы. Все.

Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и ниже побочной диагонали
Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие одновременно выше главной.

Вычислить среднее арифметическое побочной диагонали матрицы, и заменить им элементы ниже главной диагонали
Вычислить среднее арифметическое элементов, находящихся на побочной диагонали двумерного массива и.

Лучший ответ

Сообщение было отмечено F- как решение

Решение

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 26 27 28 29 30 31 32 33 34 35 36 37 38
#include #include using namespace std; int main() { int N; cout  "N= "; cin >> N; int **mas = new int *[N]; cout  "Enter Matrix "endl; for (int i = 0; i  N; ++i) { mas[i] = new int[N]; for (int j = 0; j  N; ++j) { cin>>mas[i][j]; } } cout  "Original Matrix "  endl; for (int i = 0; i  N; ++i) { for (int j = 0; j  N; ++j) { cout  mas[i][j]  " "; } cout  '\n'; } cout  "diagonal "endl; for (int i = 0; i  N; ++i) { cout  mas[i][N-i-1]  " "; } return 0; }

Максим 1994, я конечно не докапываюсь, но динамическую память нужно удалять 😉

ЦитатаСообщение от макакий Посмотреть сообщение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include using namespace std; int main() { int a[500][500], N; cin >> N; for (int i = 0; i  N; ++i) for (int j = 0; j  N; ++j) cin >> a[i][j]; for (int i = 0; i  N; ++i) cout  [i][N-i-1]  <" "; cout  <"\n"; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
такой код проходит один тест, а дальше дичь какая-то #include #include #include #include using namespace std; int main(){ int arr[1000][1000], n, count = 1; cin>>n; for(int i = 0 ; in; i++){ for(int j = 0; jn; j++){ arr[i][j] = count; count++; } } for(int i = 0; in; i++){ cout  [i][n-i-1]  <" "; } return 0; }

там двумерный массив a[500][500]

Добавлено через 2 минуты
3
1 2 3
4 5 6
7 8 9
Correct
3 5 7
Output
1 1 1

Добавлено через 6 минут

Заменить элементы главной диагонали матрицы нулями и найти максимальный элемент ниже побочной диагонали
Есть пример для решения другой задачи(она находит суму всех элементов каждой строки и выводит.

Поместить элементы из первого массива выше и на побочной диагонали матрицы, а из второго массива ниже побочной
Сгенерировать две последовательности А и В из 15 и 10 случайных целых чисел соответственно.

Расположить элементы матрицы так, чтобы на побочной диагонали были бы максимальные элементы строк
Доброго времени суток. помогите пожалуйста с задачей последняя осталась) Расположить элементы.

Поменять местами элементы главной и побочной диагонали матрицы и найти столбцы, элементы которых убывают
С++ Задана матрица A(n,n). Поменять местами элементы главной и побочной диагонали. В.

Упорядочить элементы матрицы по побочной диагонали
Здравствуйте! Нужно написать программу, по упорядочиванию элементов матрицы по побочной диагонали.

Вывести на экран положительные элементы побочной диагонали
Вот задание: Даны две квадратные матрицы А и В. Вывести на экран положительные элементы побочной.

Источник

Вывести на экран все элементы побочной диагонали матрицы

Дан двумерный массив размера N×N. Требуется вывести на экран все элементы его побочной диагонали, начиная с элемента, расположенного в правом верхнем углу.

Формат входных данных
С клавиатуры вводится натуральное число N(N≤500). Следующие N строк содержат по N целых чисел, разделенных пробелом — элементы массива. Все числа не превосходят 1000 по модулю.
Формат выходных данных
Требуется вывести через пробел NN целых чисел — элементы побочной диагонали массива.
Примеры
входные данные
3
1 2 3
4 5 6
7 8 9
выходные данные
3 5 7

Вывести на экран в одну строку все элементы побочной диагонали квадратного массива
Вывести на экран (в одну строку): а) все элементы побочной диагонали квадратного массива, начиная.

Переставить все элементы k-ой строки матрицы (между собой) и все элементы побочной диагонали
Ребята, помогите пожалуйста решить задачу. переставить все элементы k-ой строки(между собой) и все.

Вывести на экран положительные элементы побочной диагонали
Вот задание: Даны две квадратные матрицы А и В. Вывести на экран положительные элементы побочной.

Вывести на экран все элементы побочной диагонали, начиная с элемента, расположенного в правом верхнем углу
Вывести на экран (в одну строку): а) все элементы побочной диагонали массива, начиная с элемента.

Источник

двумерный массив- побочные диагонали

Привет всем. Пишу на Си. Как в матрице(двумерный массив mass[M][N]) найти минимальный элемент, лежащий ниже побочной диагонали?

и как вообще отсеиваются элементы побочной диагонали(выше побочной диагонали, ниже побочной диагонали , и сабсно сами побочные диагонали)?

Добавлено через 1 час 0 минут
мне хотя бы примерно в словах. точно все расписывать не надо. хочу понять смысл как отсеиваются элементы (выше побочной диагонали, ниже побочной диагонали , и сабсно сами побочные диагонали)?

Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива
Дан двумерный массив , создать другой массив ,строками которого будут диагонали первого массива.

Двумерный массив (вывод главной диагонали наоборот)
помогите пожалуйста, нужно написать программу которая выводит главную диагональ наоборот.

Заполнить двумерный массив случайными числами, а диагонали — нулями
Заполнить двумерный массив случайными числами. И в массиве заполнить диагонали 0.

Двумерный массив: подсчитать произведение одной и второй диагонали
Данный двумерный массив чисел. Подсчитать произведение одной и второй диагонали массива чисел.

Если главная диагональ характеризуется i = j, то побочная будет так: i+j = N-1; где N — размер матрицы(матрица квадратная!), соответственно элементы выше побочной диагонали будут как i+j < N-1, ниже побочной диагонали i+j >N-1, ну и код для наглядности:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include int main() { const int N = 5; int matrix[N][N] = {}; for (int i = 0; i  N; i++) { for (int j = 0; j  N; j++) { if (i+j == N-1) matrix[i][j] = 2; //побочная диагональ if (i+j  N-1) matrix[i][j] = 1; //выше побочной if (i+j > N-1) matrix[i][j] = 3; //ниже побочной std::cout  [i][j]  <" "; } std::cout  ::endl; } }

Источник

Читайте также:  Отдел мобильной разработки чем занимается
Оцените статью