Поменять местами соответствующие элементы, расположенные левее главной и побочной диагоналей и правее них - 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)
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Переменная
n
инициализируется значением, равным количеству элементов в массиве. - Переменная
i
инициализируется значением, равным количеству элементов в первой половине массива (округленному в большую сторону до ближайшего целого числа). - Запускается цикл
for
, который выполняетсяi
раз. - Внутри цикла меняются местами элементы, расположенные левее главной и побочной диагоналей и правее них.
- После выполнения цикла выводится результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д