Составить программу в языке Си Даны размерность квадратной матрицы и сама матрица целых чисел.
Отсортировать по возрастанию элементы матрицы на побочной диагонали. (в правом верхнем углу матрицы стоит наименьший элемент)
Вывести полученную матрицу на экран.
Заранее
#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"); // Перенос на следующую строку
}
}