Вопрос задан 01.07.2023 в 11:56. Предмет Информатика. Спрашивает Акоев Дима.

Составить программу в языке Си Даны размерность квадратной матрицы и сама матрица целых чисел.

Отсортировать по возрастанию элементы матрицы на побочной диагонали. (в правом верхнем углу матрицы стоит наименьший элемент) Вывести полученную матрицу на экран. Заранее Спасибо.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лосев Владислав.

Ответ:

#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"); // Перенос на следующую строку

   }

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот пример программы на языке C, которая выполняет указанную задачу:

c
#include <stdio.h> // Функция для сортировки массива методом пузырька void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // Обмен значениями int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int n; printf("Введите размерность квадратной матрицы: "); scanf("%d", &n); int matrix[n][n]; printf("Введите элементы матрицы:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } } // Получение элементов побочной диагонали int diagonalElements[n]; for (int i = 0; i < n; i++) { diagonalElements[i] = matrix[i][n - i - 1]; } // Сортировка элементов побочной диагонали bubbleSort(diagonalElements, n); // Возвращение отсортированных элементов на побочную диагональ for (int i = 0; i < n; i++) { matrix[i][n - i - 1] = diagonalElements[i]; } // Вывод полученной матрицы printf("Матрица после сортировки на побочной диагонали:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } return 0; }

Скопируйте этот код в файл с расширением .c и скомпилируйте его с помощью компилятора C, чтобы выполнить программу. Программа попросит вас ввести размерность матрицы и её элементы, затем выведет матрицу после сортировки на побочной диагонали.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос