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