![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Дано массив 8 на 8. Надо заполнить случайными числами. Мне выводит просто ряд чисел, а не массив. Ищу помощи)
Это сообщение отредактировал(а) Kruger2 - 29.6.2011, 16:35 |
|||
|
||||
triclosan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 2 Всего: 12 |
||||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Спасибо. Причем смотрел на пример из книги и решил, что переход на следующую строку нужен только в той задаче, а просто фигурные скобки не меняли сути дела
![]() + в репу поставьте от меня. Второй вопрос по функции: Как правильно объявить переменные функции? не правильнее ли было бы объявить:
Но компилятор матюкается. Функции я не до конца понял:( |
|||
|
||||
triclosan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 2 Всего: 12 |
||||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Последний вопрос
![]() Хочу вывести это вообще в отдельную функцию, но не работает:(
Где то критическая ошибка. Думал может сранд должен вызываться в мейне, но ничего не меняет. Это сообщение отредактировал(а) Kruger2 - 29.6.2011, 17:08 |
|||
|
||||
newbieone |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.3.2010 Репутация: 1 Всего: 1 |
Что-то странное происходит в этой теме. Kruger2, и после добавления одного printf всё сразу заработало?
Как можно вызывать функцию random() с двумя аргументами, если у неё список параметров пустой?
Как можно в функции определять статический массив, если переменные для размерности не инициализированы, а потом еще и обращаться по индексу к элементу массива, которого и существовать-то не должно (происходит выход за рамки массива)?
О каком вообще заполнении массива идет речь, если в функции main() никакого массива не определено? От такого же поседеть можно! Закидайте меня камнями или объясните, что я упустил в коде... По-моему, всё должно быть хотя бы вот так:
Это сообщение отредактировал(а) newbieone - 29.6.2011, 17:11 |
||||||
|
|||||||
triclosan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 2 Всего: 12 |
||||
|
||||
h0rn3t |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 28.6.2011 Репутация: нет Всего: нет |
Kruger2,
а какой смысл заполнять массив если вы его не сохраняете? а ошибка говорит о том что уже есть функция random() в /usr/include/stdlib.h |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Как то я думал, что заполнение = вывод на экран. А то что элементы не определены, так думалось, что цикл фор определяет мне размерность массива, не?
Добавлено через 3 минуты и 42 секунды Учел указание newbieone о необходимости заполнения массива и всё получилось. Прога работает. Вынес все действия в функцию и вот что получилось:
Многие очевидные для вас вещи я не понимаю и часто делаю методом подбора. Читаю 1 книгу и 1 справочник, но по моим наблюдениям только вот такая практика и помощь форумчан помогает как то понять ту абракадабру, о которой там пишут ![]() Добавлено через 5 минут и 9 секунд Сейчас программа имеет цивильный вид, или есть ещё ошибки? ![]() Добавлено через 5 минут и 49 секунд Поставьте newbieone + в репутацию от меня пожалуйста. |
|||
|
||||
newbieone |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.3.2010 Репутация: 1 Всего: 1 |
Заполнение и вывод на экран - это совершенно разные операции, и вообще считается хорошим тоном не мешать их в одном месте. Заполнять - в одном месте (функции/цикле), выводить - в другом. Вот смотрите: захотелось вам вывести данные на экран еще разок. А они нигде не сохранены, так как у вас даже массива для их хранения в теле функции main() не было. Не получится, то есть, повторно на те же числа посмотреть.
Нет, не определяет. Кстати, будьте внимательнее в циклах: если в массиве должно быть 8*8=64 элемента, то и итераций в цикле должно быть столько же. У вас же в первом вашем посте
итераций получается 9*9=81. Условие (после первой ";" в шапке цикла) должно быть строгое: i<8 (то же самое для j соответственно). Это сообщение отредактировал(а) newbieone - 29.6.2011, 17:32 |
||||||
|
|||||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Да, то что я вышел за пределы массива я увидел, когда пару раз вывел данные на экран правильно и в последней программе исправил. Спасибо.
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Может вам на perl перейти? Там и массивы сами определятся будут, и размеры их адаптироваться по месту (в том числе и в циклах for) ![]() ![]() |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
xvr, так вот откуда пошёл термин "перл" в смысле "нечто нелепое, смешное, бессмысленное"
![]() Это ж, вроде, write-only язык... поставил кроме тех, на которые указал newbieone и кроме какого-то корявого выравнивания можно ещё чуть-чуть покритиковать стиль кодирования ? 1. Не описывай в одной строке несколько переменных, тем более разных типов (int и двумерный массив int'ов). ну... разве что i и j 2.
даже если в цикле одна операция (строка), лучше использовать {}, т.к. если тебе потребуется в будущем добавить в тело цикла строку, то всё равно придётся их вставлять, а если потребуется закомментировать эту строку, то есть вероятность, что забудешь закомментировать и сам цикл и в тело цикла попадёт следующая строка... -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Спасибо, учту. В конечном варианте ещё добавил #define и избавился от 8 в коде (говорят непонятные цифры это плохо
![]() |
|||
|
||||
voral |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.3.2008 Где: Иваново Репутация: нет Всего: нет |
я бы еще добавил, что лучше привыкать иначе задавать размерность массива
или
Если понадобиться в последствии изменить размерность, достаточно будет сделать только в одном месте Добавлено через 1 минуту и 11 секунд Упс проглядел ответ про define |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |