Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / -1 / 0
Регистрация: 22.07.2017
Сообщений: 8
1

Создать новый динамический массив Y, вставив после каждого положительного элемента массива Х ноль

04.08.2017, 19:33. Показов 1237. Ответов 6
Метки нет (Все метки)

Сформировать динамический одномерный массив Х. Найти количество положительных элементов. Создать новый динамический массив Y, вставив после каждого положительного элемента массива Х ноль. Найти среднее арифметическое элементов массива Y.

Можно максимально простой для начинающего код? Заранее спасибо.
0.50

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2017, 19:33
Ответы с готовыми решениями:

Преобразовать массив, вставив после каждого положительного элемента нулевой элемент
Дан массив размера N. Преобразовать его, вставив после каждого положительного элемента нулевой...

Преобразовать массив, вставив после каждого положительного элемента максимальный элемент
Решить,оформив решение в виде функций генерации,вывода и обработки массива. Дан массив, состоящий...

В целочисленном массиве после каждого положительного элемента поставить ноль.
Помогите плиз решить задачу. 1) В целочисленном массиве после каждого положительного элемента...

Увеличьте массив, вставив после каждого элемента такой же
Привет. Помогите разобраться! Пусть дана последовательность из элементов N. Увеличьте ее, вставив...

6
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
04.08.2017, 21:44 2
Среднее арифметическое доделай сам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vector>
 
int main()
{
  std::vector<int> array1 = { 1, -5, 2, 10 };
  std::vector<int> result;
  result.reserve(array1.size()*2);
  for(auto value : array1) {
    result.push_back(value);
    if(value >=0 )
      result.push_back(0);
  }
}
1
2 / 2 / 1
Регистрация: 08.09.2014
Сообщений: 20
04.08.2017, 23:00 3
Лучший ответ Сообщение было отмечено Oladushek как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
 
using namespace std; // использование пространства имен, чтобы не приходилось дописывать перед операторами std::
 
int main ()
{
// n - желаемое количество элементов в массиве
// positive_n - будет хранить количество положительных элементов в массиве
// i - переменная для цикла
// j - счетчик для заполнения массива y
// sum_y - сумма элементов y
int n, positive_n = 0, i, j = 0, sum_y = 0; 
 
cin >> n; // ввод количества элементов в массиве
 
int *x = new int[n]; // создание динамического массива x
 
for (i = 0; i < n; i++) // цикл, что перебирает массив x размерностью n
{
    cin >> x[i]; // ввод значений массива вручную, можно заменить на что-либо другое
    if (x[i] > 0) positive_n ++; // если число положительное, значение счетчика увеличивается на единицу    
}
 
// количество нулей для вставки в массив y = количеству положительных чисел в массиве x
int *y = new int[n + positive_n]; // создание динамического массива y размерностью n + количество нулей, которые нужно будет добавить
 
for (i = 0; i < n; i++)
{
    y[j] = x [i]; // копируем значение из массива x в y
    j++; // сдвигаемся на один элемент вправо для записи следующего числа 
    if (x[i] > 0) // если число положительное
    { 
        y[j] = 0; // следующий элемент = 0
        j++; // сдвигаемся на один элемент вправо для записи следующего числа
    }
}
 
for (i = 0; i < (n + positive_n); i++) // цикл для перебора массива y
{
    sum_y += y[i]; // поэлементное суммирование
}
 
cout << "kol.pol.elem = " << positive_n << endl;
cout << "sr_arifm = " << (double)sum_y/(n + positive_n);
 
return 0;
}
1
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
05.08.2017, 00:45 4
nigma2014, осталось ещё добавить комментарии к комментариям

Добавлено через 33 секунды
не используй using namespace std и не забывай освобождать память выделенную с помощью new
1
2 / 2 / 1
Регистрация: 08.09.2014
Сообщений: 20
05.08.2017, 01:34 5
DevAlone,

А чем плохо использование using namespace std?
Про память справедливо.
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
05.08.2017, 20:20 6
nigma2014,
Цитата Сообщение от nigma2014 Посмотреть сообщение
А чем плохо использование using namespace std?
Могут возникнуть конфликты имён, используйте либо явное указание пространства имён
C++
1
std::string str;
либо вот эту форму
C++
1
using std::cout;
1
2 / 2 / 1
Регистрация: 08.09.2014
Сообщений: 20
06.08.2017, 11:43 7
DevAlone, понял. Спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2017, 11:43

Увеличьте массив, вставив после каждого элемента такой же
Здравствуйте, нужна помощь с решением заданий в C#(консоли). А) Пусть дана последовательность из...

Преобразовать массив вставив после каждого отрицательного элемента нулевой элемент
Дан массив размера N. Преобразовать его, вставив после каждого отрицательного элемента нулевой...

Преобразовать массив вставив после каждого отрицательного элемента нулевой элемент
Создать класс, реализующий задачу (ввод-вывод из файла).Дан целочисленный массив.Преобразовать...

После каждого элемента массива поставить 0 и записать в новый массив
1) Разрядить данный массив произвольной длины, т.е. после каждого элемента поставить 0 и записать в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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