Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2016, 19:50   #1
Yulia24*
Пользователь
 
Регистрация: 16.10.2016
Сообщений: 13
По умолчанию двумерный массив (матрица), язык Си

объясните пожалуйста как работает эта часть кода
Код:
 for(i = 1, k = 1; i < x; i++, k++){            //ищутся одинаковые значения
        for(j = 0, l = 0; j < i; j++, l++){
            if(M[i][j] == M[l][k]){
у меня дана матрица и эта часть кода должна сравнивать числа в матрице относительно главной диагонали, и она сравнивает все числа, но я не могу понять по какому принципу, объясните пожалуйста, если можно на каком нибудь примере.
Yulia24* вне форума Ответить с цитированием
Старый 02.11.2016, 20:21   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Что значит как? Берется элемент m[1][0] и сравнивается с m[0][1], потом берется элемент m[2][0] и сравнивается с m[0][2] и т.д.
p51x вне форума Ответить с цитированием
Старый 02.11.2016, 23:09   #3
Yulia24*
Пользователь
 
Регистрация: 16.10.2016
Сообщений: 13
По умолчанию

ну это понятно что дальше может быть 30 03, 40 04 и т.д., а как дальше работает когда переходит в другой цикл?
Yulia24* вне форума Ответить с цитированием
Старый 02.11.2016, 23:18   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А почему ты просто не выведешь на экран?

14.jpg


p.s.: пробел между строчками - означает переход на другой цикл.


Или ты не знаешь как работает "for(..."?
ura_111 вне форума Ответить с цитированием
Старый 02.11.2016, 23:24   #5
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Кстате, ты заметила что будет сравниваться (последняя строчка):
Код:
M[3][2] и M[3][3]
А это никакого отношения к проверки симметричности не имеет. Должно быть:
Код:
M[3][2] и M[2][3]

Последний раз редактировалось ura_111; 02.11.2016 в 23:26.
ura_111 вне форума Ответить с цитированием
Старый 02.11.2016, 23:37   #6
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вот как работает 2-а вложенных цикла:

15.jpg

Yulia24*, проанализируй данные в консоли (а ещё лучше перенабери код себе, а потом проанализируй). Значения "i,j" это будущие индексы матрицы М[][].

p.s.: Yulia24*, смотри если тебе нужно симметрия относительно главной диагонали, то можно попробовать так:
Код:
М[i][j] и M[i][j]
Ты же заметила, что "M[3][2] и M[2][3]", но будет сравнивать много лишнего, а значит нужны ограничения придумать...
ura_111 вне форума Ответить с цитированием
Старый 03.11.2016, 06:25   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
а как дальше работает когда переходит в другой цикл?
Вы скажите, что вам не понятно. Цикл фор работает всегда одинаково и стандартно.
p51x вне форума Ответить с цитированием
Старый 03.11.2016, 20:20   #8
Yulia24*
Пользователь
 
Регистрация: 16.10.2016
Сообщений: 13
По умолчанию

мне не понятно вот что, я первый раз столкнулась с тем что цикл находится в цикле, и не понимаю в каком порядке программа работает с циклами..сначала полностью работает с первым и затем переключается на тот что внутри, или наоборот?
Yulia24* вне форума Ответить с цитированием
Старый 03.11.2016, 20:53   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Тело цикла выполняется на каждом шаге в независимости от того, есть ли там цикл.
p51x вне форума Ответить с цитированием
Старый 03.11.2016, 21:25   #10
Yulia24*
Пользователь
 
Регистрация: 16.10.2016
Сообщений: 13
По умолчанию

Всем огромное спасибо за помощь!
Yulia24* вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерный массив (матрица), язык Си Yulia24* Помощь студентам 10 02.11.2016 20:26
язык С# двумерный массив rocker34rus Помощь студентам 0 31.03.2013 12:21
двумерный массив,язык СИ Riona Общие вопросы C/C++ 26 13.04.2012 19:19
Матрица - двумерный массив Vitalya_1993 Помощь студентам 17 25.12.2011 16:00
Двумерный массив(матрица) svim Общие вопросы C/C++ 8 10.03.2011 13:15