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

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

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

Есть написанная программа, которая меняет местами соответствующие элементы, расположенные левее главной и побочной диагоналей и правее них. Вопрос: Почему выводится не матрицей? Скриншот приложен.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <time.h>
  5. #include <math.h>
  6. int main()
  7. {
  8. int i, j, n, m, massiv_min, massiv_max, temp;
  9. time_t t; // Текущее время для инициализации рандомайзера
  10. srand((unsigned) time (&t)); // Инициализация рандомазера
  11. printf("\nVvedite niz. granitsu diapazona:"); // Ввод данных
  12. scanf("%d", &massiv_min);
  13. printf("\nVvedite verh granitsu diapazona:");
  14. scanf("%d", &massiv_max);
  15. printf("\nVvedite razmer massiva:");
  16. scanf("%d", &n);
  17. int massiv[n][n]; //Вывод исходного массива
  18. printf("\nIshodniy massiv:\n");
  19. m=massiv_max-massiv_min+1;
  20. for(i=0; i<n; i++) // Получение случайного числа в диапазоне от vector_min до vector_max
  21. {
  22. for(j=0; j<n; j++)
  23. {
  24. massiv[i][j]=rand()%m+massiv_min; // %m - верхний предел для генерации последовательности - переменная "m".
  25. printf("%5d", massiv[i][j]);
  26. }
  27. printf("\n");
  28. }
  29. for(i=0; i<(n/2); i++)
  30. {
  31. for(j=0; j<i; j++)
  32. {
  33. temp=massiv[i][j]; // Отразить верхние элементы (выше средней строки)
  34. massiv[i][j]=massiv[i][n-1-j];
  35. massiv[i][n-1-j]=temp;
  36. temp=massiv[n-1-i][j]; // Отразить нижние элементы (ниже средней строки)
  37. massiv[n-1-i][j]=massiv[n-1-i][n-1-j];
  38. massiv[n-1-i][n-1-j]=temp;
  39. }
  40. }
  41. printf("\nVihodnoi massiv\n");
  42. for(i=0; i<n; i++)
  43. {
  44. for(j=0; j<n; j++)
  45. {
  46. printf("%5d", massiv[i][j]);
  47. }
  48. }
  49. printf("\n");
  50. return 0;
  51. }

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

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

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

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

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

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


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

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

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы