Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kurban0303
4 / 4 / 0
Регистрация: 01.11.2012
Сообщений: 26
#1

Заполнить булевский массив goroda[100] значениями false - C++

24.11.2012, 22:18. Просмотров 1432. Ответов 13
Метки нет (Все метки)

Не соображу как это сделать !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 22:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить булевский массив goroda[100] значениями false (C++):

Заполнить массив случайными значениями, лежащими в диапазоне от 50 до 100 - C++
Массив предназначен для хранения значений весов двадцати человек. С помощью датчика случайных чисел заполните массив целыми значениями,...

Массив размерностью 30 заполнить случайными числами, лежащими в диапозоне от -100 до 100 - C++
Массив размерностью 30 заполнить случайными числами, лежащими в диапозоне от -100 до 100. Заменить все элементы с отрицательными значениями...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Заполнить массив значениями - C++
Помогите пожалуйста с кодом. Дан одномерный массив вещественных чисел Х50. Массив заполнить значениями в диапазоне от 5 до 50 с...

Заполнить массив случайными значениями - C++
и так, мне надо сделать такую штуку: делаю массив (8 чисел), заполняю его рандомными числами, и надо чтобы каждые 8 чисел записались в...

Заполнить массив случайными значениями - C++
Написать программу, в которой с помощью генератора случайных значений сформировать 4 массива V1, V2, V3, V4, каждый из которых содержит 9...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
24.11.2012, 22:21 #2
C++
1
memset(&goroda[0],0,12);
Оставшиеся 4 через операцию сдвига
Или выбелить 104 бита и выполнять
C++
1
memset(&goroda[0],0,13);
kurban0303
4 / 4 / 0
Регистрация: 01.11.2012
Сообщений: 26
24.11.2012, 22:25  [ТС] #3
а как нибудь полегче нельзя это сделать через цикл например? А то я только юзаю c++
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
24.11.2012, 22:25 #4
во время создания массива:
C++
1
bool goroda[100] = {false};
kurban0303
4 / 4 / 0
Регистрация: 01.11.2012
Сообщений: 26
24.11.2012, 22:28  [ТС] #5
Спасибо!
Я просто так писал: bool goroda[100] =false; -без фигурных скопок!

Добавлено через 15 секунд
скобок
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
24.11.2012, 22:42 #6
V.A.L.I.D, вы уверены что при
C++
1
bool goroda[100] = {false};
false'ом будут инициализированы все элементы массива? Я часто инициализирую вот так:
C++
1
char goroda[100] = {0,1,4,3};
В таком случае инициализируются только первые 4 элемента. Логично предположить что первый элемент инициализируется вот так:
C++
1
char goroda[100] = {0};
И потом в сети часто встречается запись ... = {0}; потому что 0 - конец строки и таким образом мы показываем что в массиве строка пуста. И такой инициализации достаточно, т.к. ниодна строковая функция не пойдет читать дальше первого элемента.
Поскольку это логично, я всегда считал что так оно и работает. Уточните пожалуйста

Добавлено через 3 минуты
kurban0303, если будете что-то инициализировать через цикл, значйте что memset выполняется быстрее. Особенно в СИ, там применяется restrict.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
24.11.2012, 22:51 #7
Цитата Сообщение от Damaks Посмотреть сообщение
V.A.L.I.D, вы уверены что при
C++
1
bool goroda[100] = {false};
false'ом будут инициализированы все элементы массива?
Вот цитата из книги Дейтел. Как программировать на C++. 7 глава
"Если число инициализаторов меньше, чем число элементов в массиве, оставшиеся элементы инициализируются нулями"

получается все правильно. все элементы массива будут 0, т.е. false
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
24.11.2012, 23:02 #8
Спасибо, хотя я в этом не вижу логики. Язык, на мой взгляд, всётаки должен строить оптимальные по производительности конструкции и не делать того, что программист не просит. Но это дело вкуса
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
24.11.2012, 23:07 #9
вроде все логично, если один из элементов инициализирован, то должны быть инициализированы все, а чем инициализировать, если не нулем?
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2012, 23:10 #10
Цитата Сообщение от Damaks Посмотреть сообщение
Оставшиеся 4 через операцию сдвига
Или выбелить 104 бита и выполнять
Честно говоря, я не понимаю о чем Вы.
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
24.11.2012, 23:30 #11
Цитата Сообщение от go Посмотреть сообщение
Честно говоря, я не понимаю о чем Вы.
Да, тупанул слегка, конечно же так:
C++
1
2
3
4
5
memset(&goroda[0],0,12);
goroda[96]=false;
goroda[97]=false;
goroda[98]=false;
goroda[99]=false;
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2012, 23:34 #12
Damaks, bool 1 байт. А я думаю, что где-то есть и по 2 байта. http://ideone.com/vsOX0J
Если нужны биты, то нужно использовать std::bitset.
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
24.11.2012, 23:46 #13
1 байт если 1 bool. А если массив bool'ов - они упаковываются в байт. Автор не уточнял что у него какая-та особая система.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2012, 23:58 #14
Цитата Сообщение от Damaks Посмотреть сообщение
Автор не уточнял что у него какая-та особая система.
Тогда
C++
1
memset(city, 0, 100); // :)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 23:58
Привет! Вот еще темы с ответами:

Заполнить массив случайными значениями - C++
Здравствуйте. Помогите, пожалуйста, с задачей. С++ Заполните массив из N элементов случайными числами в интервале так, чтобы в массив...

Заполнить массив введенными значениями - C++
Сначала надо спросить у пользователя числа и потом вывести их таким образом: 0=(Прекратить ввод) 1 5 1 3 0 __* ***** __* ...

Заполнить массив значениями степеней двойки - C++
Заполнить массив из 16-ти элементов степенями 2-ки: 1,2,4,8,... Используя цикл For онли :)

Заполнить массив случайными неповторяющимися значениями - C++
Уважаемые программисты, я новенькая в C++. Помогите, пожалуйста, с домашкой по одноразм. массивам. Нужно сделать прогр., кот. заполняла бы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.11.2012, 23:58
Ответ Создать тему
Опции темы

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