Составить программу в языке Си
Даны размерность квадратной матрицы и сама матрица целых чисел.
Отсортировать по возрастанию элементы матрицы на побочной диагонали. (в правом верхнем углу матрицы стоит наименьший элемент)
Вывести полученную матрицу на экран.
Заранее Спасибо.
Ответы на вопрос
Ответ:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
main()
{
setlocale(0,"");
srand(time(NULL));
int size;
printf("Введите размер квадратной матрицы: ");
scanf("%d", &size);
int arr[100][100];
for(int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
arr[i][j] = rand() % 100 - 30;
printf("%d\t", arr[i][j]);
}
printf("\n");
}
for(int j = 0; j < size - 1; j++)
{
for(int i = j + 1; i < size; i++)
{
if (arr[j][size - j - 1] > arr[i][size - i - 1])
{
int temp = arr[j][size - j - 1];
arr[j][size - j - 1] = arr[i][size - i - 1];
arr[i][size - i - 1] = temp;
}
}
}
printf("\n");
for(int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
}
Объяснение:
Максимальный размер матрицы - 100х100
#include <stdio.h> // Библиотека ввода - вывода
#include <stdlib.h> // Библиотека для рандома
#include <locale.h> // Библиотека для локализации
#include <time.h> // Библиотека для работы со временем
main()
{
setlocale(0,""); // Локализация
srand(time(NULL)); // Обнуление времени (каждый раз новые числа)
int size; // Целочисленная переменная для хранения размера квадратной матрицы
printf("Введите размер квадратной матрицы: "); // Вывод сообщения в консоль
scanf("%d", &size); // Ввод размера матрицы с клавиатуры
int arr[100][100]; // Создание матрицы
for(int i = 0; i < size; i++) // Идём по матрице
{
for (int j = 0; j < size; j++) // Идём по матрице
{
arr[i][j] = rand() % 100 - 30; // Заполнение матрицы случайными числами
printf("%d\t", arr[i][j]); // Вывод
}
printf("\n"); // Перенос на следующую строку
}
for(int j = 0; j < size - 1; j++) // Идём по матрице
{
for(int i = j + 1; i < size; i++) // Идём по матрице
{
if (arr[j][size - j - 1] > arr[i][size - i - 1]) // Если элемент побочной диагонали больше последующего элемента побочной диагонали
{
int temp = arr[j][size - j - 1]; // Перестановка
arr[j][size - j - 1] = arr[i][size - i - 1]; // Перестановка
arr[i][size - i - 1] = temp; // Перестановка
}
}
}
printf("\n"); // Перенос на следующую строку
for(int i = 0; i < size; i++) // Идём по матрице
{
for (int j = 0; j < size; j++) // Идём по матрице
{
printf("%d\t", arr[i][j]); // Вывод
}
printf("\n"); // Перенос на следующую строку
}
}