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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 123, средняя оценка - 4.93
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Присвоение значений всем элементам массива - C++

15.10.2009, 15:03. Просмотров 17234. Ответов 13
Метки нет (Все метки)

Как присвоить значение всем элементам массива наиболее простым способом

думал что

C++
1
2
  
double massiv[11]={1};
присваивает значение всем элементам но как оказалось только первому элементу

Можно как то присвоить значение всем элементам сразу при инициализации массива?
Ну или без использования цикла
К примеру надо чтобы все элементы массива были равны 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2009, 15:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Присвоение значений всем элементам массива (C++):

Присвоение значений элементам двумерного динамического массива - C++
Я недавно начал программировать на языке С++, поэтому, естественно, многого не понимаю :( Вот создал я (пытался) двумерный динамический...

Присвоение значений элементам вложенной структуры - C++
Необходимо присвоить значение элементам массива структур struct message { unsigned char code; unsigned short length; struct body...

Ко всем элементам одномерного массива прибавить первый - C++
Дан одномерный массив. Нужно ко всем его элементам прибавить первый . Например : ввод - 1 2 3 4 вывод - 3 4 5

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

Помогите найти ошибку в коде(цикл for проходит не по всем элементам массива) - C++
#include "stdafx.h" #include "iostream" #include <clocale> #include <stdio.h> #include <math.h> using namespace std; int...

Исправить программу, чтобы она прибавляла ко всем элементам одномерного массива первый - C++
Подскажите как сделать чтобы эта программа ко всем элементам прибавляла не 1 , а первый элемента одномерного массива (строки) #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
15.10.2009, 15:22 #2
C++
1
2
3
for(int i=0;i<11;i++){
massiv[i]=1;
}
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
15.10.2009, 15:25  [ТС] #3
pigah,
ну это я и сам знаю
я ж написал можно ли без цикла
pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
15.10.2009, 15:28 #4
Нет но можно так:
C++
1
double massiv[5]={1,1,1,1,1};
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,368
15.10.2009, 15:37 #5
А если массив тысяч этак на 20 элементов
C++
1
2
3
4
5
6
#include <algorithm>
 
const int size = 50000;
double array[size];
 
std::fill(array, array + size, 1.0);



rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
15.10.2009, 16:17 #6
...присваивает значение всем элементам но как оказалось только первому элементу
Не совсем так. Если используется список инициализации, то все эелементы которые не инициализированы в ручную автоматически инициализируются нулями. Т.е. к примеру int mas[5] = {0}; инициализирует нулями весь массив, а не только первый элемент.
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.10.2009, 16:18 #7
Шутка, но как вариант
C++
1
2
3
4
int buf[20000];
for(int i = 0; i < 20000; ++i)
    buf[i] = 1;
int* mas = buf;
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
15.10.2009, 16:23  [ТС] #8
CheshireCat,
большое спасибо то что нужно
почему то заработало без #include <algorithm> и std:: это нормально ?

pigah,
C++
1
double massiv[5]={1,1,1,1,1};
тож полезно знать что так можно
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
15.10.2009, 16:40 #9
nill, а чем тебе цикл мешает?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.10.2009, 16:41 #10
Цитата Сообщение от CheshireCat Посмотреть сообщение
А если массив тысяч этак на 20 элементов
C++
1
std::fill(array, array + size, 1.0);
Пояснения к функции fill.
C++
1
2
3
4
5
6
template<class ForwardIterator, class Type>
   void fill(
      ForwardIterator _First,  // указатель на первый элемент массива (имя массива является одновременно указателем на первый элемент)
      ForwardIterator _Last,   // указатель на элемент следующий за последним (указатель на первый элемент плюс количество)
      const Type& _Val         // заполнитель 
   );
Ссылка в MSDN: fill(C++ Std Lib)

А std нужно потому, что fill входит в простанство имен (namespace) под названием std, и просто так его использовать не получиться. Операция :: (разрешение контекста) используется для доступа к членам пространства имен (но не только).
Sich_Taras
14 / 14 / 1
Регистрация: 08.10.2009
Сообщений: 114
15.10.2009, 16:57 #11
Можно использовать такой вариант, который значительно быстрее способа "через цикл":
C++
1
2
3
4
5
6
7
8
9
//In Visual Studio 9.0
#include<iostream>
....
int main()
{
int Array[100];
memset(Array, 0, sizeof(int)*100)
....
}
Это подходит для целочисельных типов и типа bool.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,368
15.10.2009, 17:06 #12
Это допустимо только при заполнении нулями. Иначе, для ненулевых значений, это допустимо только для типов char и bool.
Владимир54645
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 3
29.12.2016, 19:29 #13
как присваивать значение символьным массивам?
MansMI
1158 / 950 / 246
Регистрация: 08.01.2012
Сообщений: 3,486
30.12.2016, 03:43 #14
C
1
2
3
4
char a[]="qwerty";//6+7-й ноль
char b[10]="";//все 10 ноль
char c[10];
memset(c,'z',sizeof(c));//все 10 'z'
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2016, 03:43
Привет! Вот еще темы с ответами:

Ко всем положительным элементам массива прибавить первый элемент, а из нулевых вычесть заданное число - C++
Всем привет. Ребят помогите срочно. Не могу написать простенькую программу. Дан массив M(10). Ко всем положительным нужно прибавить первый...

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

Ошибка при задании значений элементам массива - C++
где я ошибся? заранее спасибо char Arry; Arry = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0} ; Arry = {1,...

Дан массив из 10 элементов, присвоить всем элементам значение - C++
Дан массив из 10 элементов, присвоить всем элементам массива значение 0, а элементу 6, присвоить значение 100 и вывести этот массив на...


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

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

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