Сдвинуть строки циклическим сдвигом вправо так, чтобы на последнем месте был максимальный по модулю элемент - C (СИ)

Узнай цену своей работы

Формулировка задачи:

в матрице сдвинуть строки циклическим сдвигом вправо так, что бы на последнем месте был максимальный по модулю элемент.

Решение задачи: «Сдвинуть строки циклическим сдвигом вправо так, чтобы на последнем месте был максимальный по модулю элемент»

textual
Листинг программы
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
 
void main(){
    setlocale(LC_ALL,"rus");
    int **array_a;
    int line, column;
    int i_max = 0, j_max = 0;
    int buf;
    
    printf("Введите размер матрицы: ");
    scanf("%d%d", &line, &column);
 
    array_a = (int**)malloc(sizeof(int)*line);
    for(int i = 0; i < line; i++)
        array_a[i] = (int*)malloc(sizeof(int)*column);
 
    printf("Заполните матрицу: \n");
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            scanf("%d", &array_a[i][j]);
        }
    }
 
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            if(abs(array_a[i][j]) > abs(array_a[i_max][j_max])){
                i_max = i;
                j_max = j;
            }else if(abs(array_a[i][j]) == abs(array_a[i_max][j_max]) && j > j_max){
                i_max = i;
                j_max = j;
            }
        }
    }
 
    for(int k = 0; k < column - j_max - 1; k++){
        for(int i = 0; i < line; i++){
            buf = array_a[i][column-1];
            for(int j = column - 1; j >= 0; j--){
                array_a[i][j] = array_a[i][j-1];
            }
            array_a[i][0] = buf;
        }
    }
 
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            printf("%d ", array_a[i][j]);
        }
        printf("\n");
    }
 
}

Объяснение кода листинга программы

  1. Ввод размера матрицы;
  2. Выделение памяти под матрицу;
  3. Заполнение матрицы;
  4. Поиск максимального элемента по модулю;
  5. Сдвиг всех элементов вправо на одну позицию;
  6. Перемещение максимального элемента на последнее место;
  7. Вывод результата.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы