Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 02.11.2016, 20: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, 21:21   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,032
По умолчанию

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

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

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

Название: 14.jpg
Просмотров: 115

Размер: 70.1 Кб


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


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

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

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

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

Название: 15.jpg
Просмотров: 141

Размер: 63.6 Кб

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерный массив (матрица), язык Си Yulia24* Помощь студентам 10 02.11.2016 21: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 14:15


11:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.