|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.05.2011, 01:34 | #1 |
Пользователь
Регистрация: 12.08.2010
Сообщений: 14
|
Массивы
Учусь я программировать на C++ и читаю я книгу "C++ без страха" и при изучении массивов там есть написанная программа под названиям "На сколько случайное является число является случайным?" вот собственно и код этой программы:
Код:
Код:
Помогите разобратся пожалуйста, напишите какое то обяснение |
28.05.2011, 04:27 | #2 |
Пользователь
Регистрация: 18.11.2009
Сообщений: 39
|
при объявлении int hits[10] в памяти выделилось 10 фрагментов по 2 байта, в каждый из них сразу вносится значение 0
Последний раз редактировалось Mahin; 28.05.2011 в 05:07. |
28.05.2011, 10:58 | #3 | |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Цитата:
Во-первых, какой именно размер типа int - неизвестно. На большинстве современных платформ - 4 байта. Но это не важно Во-вторых, при объявлении массива память заполняется случайными величинами, так называемым "машинным мусором", и ничего не обнуляется. Вот эти случайные величины автор и инкрементит. Подход, надо сказать, весьма странный, обычно работа с мусором никогда не производится, я бы так не стал делать во всяком случаи
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
|
28.05.2011, 13:33 | #4 |
Пользователь
Регистрация: 12.08.2010
Сообщений: 14
|
Нет все правильно написано и работает, а при объявлении массива все элементы массива инициализируются 0, потому что массив объявлен глобально, так сказать не в функции, если он был бы объявлен в функции тогда все элементы массива были бы "мусором".
Вы мне пожалуйста поконкретнее ответьте на вопрос... |
28.05.2011, 20:33 | #5 |
Пользователь
Регистрация: 18.11.2009
Сообщений: 39
|
нифига не мусором, объяви массив и в мэйне выведи его без обработки, получишь заданное размером количество нулей. хотя, может это зависит от компилятора...
|
28.05.2011, 21:20 | #6 | |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
ISO C++:
Цитата:
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
|
29.05.2011, 00:16 | #7 |
Пользователь
Регистрация: 12.08.2010
Сообщений: 14
|
Столько профессионалов на форуме и не кто не может мне помочь, очень прошу потому что если я не буду знать как это работает у меня нет смысла читать дальше книгу.
____________ Помогите пожалуйста... |
29.05.2011, 00:43 | #8 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Да что вам не ясно? Я все объяснил в своем первом посте в этой теме. Единственное в чем ошибся - это в том, что массив изначально заполнен нулями, а не случайными величинами
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
29.05.2011, 00:59 | #9 |
Пользователь
Регистрация: 12.08.2010
Сообщений: 14
|
for (i = 1; i <= n; i++) {
r = rand_0toN1(10); hits[r]++; как оно работает не могу понять и все } Какой элемент инкрементирует, если у массива не объявлены элементы? hits[r(допустим сюда попало случайное число 7)] ++ - тогда что дальше он инкрементит? |
29.05.2011, 01:21 | #10 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Sadist989
Какой элемент инкрементирует элемент с индексом r у массива не объявлены элементы? это бред. читай учебник по C++, раздел массивы. hits[r(допустим сюда попало случайное число 7)] ++ - тогда что дальше он инкрементит? если r превышает размер массивы - то случайную ячейку памяти.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Массивы | cuba_35 | Помощь студентам | 1 | 12.11.2010 06:04 |
Динамические массивы и массивы варианты | N@stya | Помощь студентам | 0 | 11.06.2010 21:09 |
С++, Массивы, динамические массивы. | -Sunshine- | Помощь студентам | 1 | 19.04.2010 02:17 |
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент | LyaLya | Помощь студентам | 15 | 20.12.2009 14:12 |