Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
orionx64
0 / 0 / 0
Регистрация: 21.09.2017
Сообщений: 43
1

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

03.11.2017, 19:23. Просмотров 260. Ответов 3
Метки нет (Все метки)

У нас есть матрица 4х4 мы делаем поворот на 90 градусов влево
Объясните как работает код
C
1
2
3
4
5
6
7
8
9
10
11
12
p = N / 2;
    for (k = 0; k < p; k++)
    {
        for (j = k; j < N - 1 - k; j++)
        {
            x = a[k][j];
            a[k][j] = a[j][N - 1 - k];
            a[j][N - 1 - k] = a[N - 1 - k][N - 1 - j];
            a[N - 1 - k][N - 1 - j] = a[N - 1 - j][k];
            a[N - 1 - j][k] = x;
        }
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2017, 19:23
Ответы с готовыми решениями:

Объясните фрагмент кода
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;locale.h&gt; ...

Поясните фрагмент кода
Всем привет! Мой вопрос достаточно странный, но ответ на него я нигде не нашел, итак как правильно...

Что делает приведенный фрагмент кода
Что делает следующий фрагмент кода и почему? void foo(void) { unsigned int a = 6; int b...

Преобразовать фрагмент кода с использованием switch
Подскажите пожалуйста, как фрагмент данного кода записать с использованием switch? Только начал...

Что выведет на консоль следующий фрагмент кода
$11. Что выведет на консоль следующий фрагмент кода: (обоснуйте ответ) unsigned char a = 255;...

3
liv
1129 / 913 / 190
Регистрация: 07.10.2015
Сообщений: 2,961
Завершенные тесты: 1
03.11.2017, 19:48 2
orionx64, все просто
последовательно вращаются "квадраты" матрицы, начиная с внешнего.
N = 4 - размерность квадратной матрицы
p = 2 - количество "квадратов". Первый - a11,a12,a13,a14,a24,a34,a44,a43,a42,a41,a31,a21. Второй - a22,a23,a33,a32
k - индекс "квадрата"
j - индекс по одной стороне квадрата
x = a[k][j]; //сохраним значение левого верхнего угла текущего "квадрата"
a[k][j] = a[j][N - 1 - k]; //значение правого верхнего угла "квадрата" пишем в левый верхний угол
a[j][N - 1 - k] = a[N - 1 - k][N - 1 - j]; //значение правого нижнего угла "квадрата" пишем в правый верхний угол
a[N - 1 - k][N - 1 - j] = a[N - 1 - j][k]; //значение левого нижнего угла "квадрата" пишем в правый нижний угол
a[N - 1 - j][k] = x; //сохраненное значение левого верхнего угла "квадрата" пишем в левый нижний угол
Комментарии для j=0, далее элементы смещаются по стороне...
1
orionx64
0 / 0 / 0
Регистрация: 21.09.2017
Сообщений: 43
03.11.2017, 22:04  [ТС] 3
_liv_, [N - 1 - k], [N - 1 - j], а что делают эти команды?
0
liv
1129 / 913 / 190
Регистрация: 07.10.2015
Сообщений: 2,961
Завершенные тесты: 1
04.11.2017, 14:44 4
orionx64, [N - 1 - k], [N - 1 - j] - это координаты элемента нижней стороны текущего квадрата, начиная с правого края до левого.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2017, 14:44

Объясните 3 строки кода
Нид хелп, осталась одна лаба, доделать не успеваю, поэтому взял чужой код. Помогите плз разобраться...

Объясните строку кода
Вот эту строчку объясните : if((src!=' ')||((src==' ')&amp;&amp;(src!=' '))){ #include &lt;stdio.h&gt; ...

Объясните часть кода
Всем привет, не понимаю до конца часть кода(???). Постарайтесь,пожалуйста, объяснить на доступном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru