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

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

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

Есть написанная программа, которая меняет местами соответствующие элементы, расположенные левее главной и побочной диагоналей и правее них. Вопрос: Почему выводится не матрицей? Скриншот приложен.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <math.h>
 
int main()
{
int i, j, n, m, massiv_min, massiv_max, temp;
time_t t; // Текущее время для инициализации рандомайзера
srand((unsigned) time (&t)); // Инициализация рандомазера
  
  printf("\nVvedite niz. granitsu diapazona:"); // Ввод данных
  scanf("%d", &massiv_min);
  printf("\nVvedite verh granitsu diapazona:");
  scanf("%d", &massiv_max);
  printf("\nVvedite razmer massiva:");
  scanf("%d", &n);
  
  int massiv[n][n]; //Вывод исходного массива
  printf("\nIshodniy massiv:\n");
  m=massiv_max-massiv_min+1;
  
  for(i=0; i<n; i++) // Получение случайного числа в диапазоне от vector_min до vector_max
  {
    for(j=0; j<n; j++)
    {
        massiv[i][j]=rand()%m+massiv_min; // %m - верхний предел для генерации последовательности - переменная "m".
        printf("%5d", massiv[i][j]);
      }
      printf("\n");
      }
 
    for(i=0; i<(n/2); i++)
    {
        for(j=0; j<i; j++)
        {
            temp=massiv[i][j]; // Отразить верхние элементы (выше средней строки)
            massiv[i][j]=massiv[i][n-1-j];
            massiv[i][n-1-j]=temp;
            
            temp=massiv[n-1-i][j]; // Отразить нижние элементы (ниже средней строки)
            massiv[n-1-i][j]=massiv[n-1-i][n-1-j];
            massiv[n-1-i][n-1-j]=temp;
        }
    }
  printf("\nVihodnoi massiv\n");
  for(i=0; i<n; i++)
  {
    for(j=0; j<n; j++)
    {
        printf("%5d", massiv[i][j]);
      }
  }
printf("\n");
return 0;
}

Решение задачи: «Поменять местами соответствующие элементы, расположенные левее главной и побочной диагоналей и правее них»

textual
Листинг программы
i<ceil(n / 2.0)

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

В данном коде выполняется следующая последовательность действий:

  1. Переменная n инициализируется значением, равным количеству элементов в массиве.
  2. Переменная i инициализируется значением, равным количеству элементов в первой половине массива (округленному в большую сторону до ближайшего целого числа).
  3. Запускается цикл for, который выполняется i раз.
  4. Внутри цикла меняются местами элементы, расположенные левее главной и побочной диагоналей и правее них.
  5. После выполнения цикла выводится результат.

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


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

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

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