Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
1

Удвоение элементов массива

22.06.2016, 10:53. Просмотров 2183. Ответов 15
Метки нет (Все метки)

Вот такая вот задача не могу её решить
Удвоить каждый элемент массива, напечатать полученный массив:

Тут наверное нужно работать с индексами как я понимаю. Допустим дан массив
C++
1
int n[3]={1,2,3}
нужно (если я правильно понял) сделать так {1,1,2,2,3,3} вот каким образом это можно сделать (добавлять новые индексы)?
Буду весьма благодарен за подмогу (желательно в виде проги если можно)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2016, 10:53
Ответы с готовыми решениями:

Удвоение информации при компиляции
Помогите пожалуйста: нижеприведенный код компиллируется с частичным удвоением информации - не могу...

В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и сумму элементов массива. [CPP]
В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и...

Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму элементов массива Y
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk)....

Вычислить количество положительных элементов массива и сумму элементов массива, расположенных после последнего элемента, равного нулю
В одномерном массиве, состоящем из n вещественных элементов, вычислить: количество положительных...

В одномерном массиве, состоящем из n целых элементов, 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между
Помогите исправить программу Задание: В одномерном массиве, состоящем из n целых элементов,...

15
nstwf
91 / 80 / 57
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
22.06.2016, 11:11 2
Вроде, как написано удвоить, т.е. умножить на 2, нет?

Добавлено через 9 минут
Ну как вариант, если их все таки надо добавить, то как-то так:
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "rus");
    srand((unsigned)time(NULL));
    cout << "Введите кол-во элементов массива: ";
    int x; cin >> x;
    int *arr = new int[x];
    int *arr2 = new int[x * 2];
    for (int i = 0; i < x; i++)
    {
        arr[i] = rand() % 20 + 1;
        cout << arr[i] << " ";
        arr2[i] = arr[i];
    }
    cout << endl;
    for (int j = 0, i = x; j < x, i < x * 2; j++, i++)
    {
        arr2[i] = arr[j];
    }
    for (int i = 0; i < x * 2; i++)
    {
        cout << arr2[i] << " ";
    }
    system("pause");
}
2
1Вирт1
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 793
Завершенные тесты: 5
22.06.2016, 11:11 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
 
int main() 
{
    static const int Size = 3;
    static const int RepeatedElem = 2;
    int n[Size] = {1,2,3};
    int mas[Size * 2];
    int count = 0;
    for (auto j = 0; j < Size; ++j)
        for (auto i = 0; i < RepeatedElem; ++i)
            mas[j *RepeatedElem + i] = n[j];
    copy(mas, mas + Size * 2, ostream_iterator<int>(cout, " "));
    return 0;
}
2
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 114
22.06.2016, 11:13 4
C++
1
2
3
4
5
6
7
8
9
const size_t size = 3;
int n[size]={1,2,3}
int n2[size*2];
for(int i=0;i<size*2;i++) {
    n2[i*2] = n[i];
    n2[i*2+1] = n[i];
    printf("%i\n", n2[i*2] );
    printf("%i\n", n2[i*2+1] );
}
2
22.06.2016, 11:13
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 11:18  [ТС] 5
Благодарю всех за ответы.
0
nstwf
91 / 80 / 57
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
22.06.2016, 11:19 6
Цитата Сообщение от Maxim09 Посмотреть сообщение
Благодарю всех за ответы.
C++
1
int n[3]={1,2,3}
Тут 4 элемента нужно вводить, ибо индексация с 0.
1
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 11:22  [ТС] 7
Цитата Сообщение от nstwf Посмотреть сообщение
Тут 4 элемента нужно вводить, ибо индексация с 0.
Можно указать индексацию не с 0 а к примеру с 1. если я правильно понял.
0
nstwf
91 / 80 / 57
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
22.06.2016, 11:29 8
Цитата Сообщение от Maxim09 Посмотреть сообщение
Можно указать индексацию не с 0 а к примеру с 1. если я правильно понял.
Можно, да, если цикл будет с 1 начинаться, но это так сказать "не по стандарту", и удобно тем, кто переехал с паскаля
C++
1
2
3
4
for(int i=1; i < n ; i++)
{
// какой-то код.
}
1
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 11:43  [ТС] 9
Программы хорошие но есть одно но я только начал изучат с++ и потому некоторых команд пока не знаю и потому не могли-бы вы написать чуть по проще.

Т.к. сама идея в том чтоб я понял как это делать а не просто получил готовую прогу
0
nstwf
91 / 80 / 57
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
22.06.2016, 12:00 10
Цитата Сообщение от Maxim09 Посмотреть сообщение
Т.к. сама идея в том чтоб я понял как это делать а не просто получил готовую прогу
С комментариями, надеюсь, понятнее. Спрашивайте, если что не так.
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
#include <iostream> // Библиотека ввода/вывода
#include <ctime> // Библиотека рандома
 
using namespace std; // Это мы используем все пространство имен
 
void main()
{
    setlocale(LC_ALL, "rus"); // Консоль на русском языке
    srand((unsigned)time(NULL)); // Подключение рандома (для заполнения матрицы случайными числами)
    cout << "Введите кол-во элементов массива: "; 
    int x; cin >> x; // Вводим кол-во элементов
    int *arr = new int[x]; // Выделяем память для начального массива из N эл-в | arr
    int *arr2 = new int[x * 2];  // Выделяем память для начального массива из N*2 эл-в | arr2
    for (int i = 0; i < x; i++) // Запускаем цикл от 0 до x
    {
        arr[i] = rand() % 20 + 1; // В arr записываем рандомные цифры от 1 до 21
        cout << arr[i] << " "; // выводим этот массив
        arr2[i] = arr[i]; // записываем в массив arr2 все элементы из arr1
    }
    cout << endl; // пустая строка
    for (int j = 0, i = x; j < x, i < x * 2; j++, i++) // цикл для 2 массивов, для arr от 0 до x, для arr2 от x до x*2(потому что нам нужно сделать ее в 2 раза больше)
    {
        arr2[i] = arr[j]; // Присваиваем значения по такому алгоритму arr2[x]=arr[0], arr2[x+1]=arr[1]  и т.д.
    }
    for (int i = 0; i < x * 2; i++) // Запускаем цикл для arr2, от 0 до x*2
    {
        cout << arr2[i] << " "; // Выводим массив arr2
    }
 
    // Освобождаем память, которую мы заняли в строках 12 и 13
    delete[] arr;
    delete[] arr2;
    system("pause");
}
1
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 12:03  [ТС] 11
Цитата Сообщение от nstwf Посмотреть сообщение
С комментариями, надеюсь, понятнее. Спрашивайте, если что не так.
Ваша программа копирует насколько я понял то есть 1.2.3.1.2.3. вот, а нужно чтоб 1.1.2.2.3.3.
0
stzer
118 / 92 / 56
Регистрация: 26.10.2013
Сообщений: 290
Завершенные тесты: 2
22.06.2016, 12:14 12
C++
1
int n[3]={1,2,3}
Цитата Сообщение от nstwf Посмотреть сообщение
Тут 4 элемента нужно вводить, ибо индексация с 0.
Неверно.
2
nstwf
91 / 80 / 57
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
22.06.2016, 12:20 13
Цитата Сообщение от stzer Посмотреть сообщение
Неверно.
Упс, извиняюсь, немного спутал с другим
0
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 12:24  [ТС] 14
Цитата Сообщение от 1Вирт1 Посмотреть сообщение
#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
* * static const int Size = 3;
* * static const int RepeatedElem = 2;
* * int n[Size] = {1,2,3};
* * int mas[Size * 2];
* * int count = 0;
* * for (auto j = 0; j < Size; ++j)
* * * * for (auto i = 0; i < RepeatedElem; ++i)
* * * * * * mas[j *RepeatedElem + i] = n[j];
* * copy(mas, mas + Size * 2, ostream_iterator<int>(cout, " "));
* * return 0;
}

добавьте плиз комментарии к этой проге.
0
1Вирт1
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 793
Завершенные тесты: 5
22.06.2016, 12:37 15
C++
1
2
3
4
5
6
7
8
9
 static const int Size = 3; // размер входного массива
static const int RepeatedElem = 2; // количество элементов для дублирования
int n[Size] = {1,2,3}; // входной массив
int mas[Size * RepeatedElem]; //выходной массив
for (auto j = 0; j < Size; ++j) //для каждого элемента входного массива
for (auto i = 0; i < RepeatedElem; ++i)// для количества повторяемых элементов 
mas[j *RepeatedElem + i] = n[j]; //произвести вставку в выходной
copy(mas, mas + Size * RepeatedElem, ostream_iterator<int>(cout, " ")); //вывод на екран
return 0;
Даже пару вещей исправил))
1
Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 12:42  [ТС] 16
Цитата Сообщение от 1Вирт1 Посмотреть сообщение
Даже пару вещей исправил))
спс за коменты.
0
22.06.2016, 12:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2016, 12:42

Определить количество элементов массива, меньших среднего арифметиче-ского значений элементов этого массива
Времени нет , только ещё учу . нужно сделать срочно работы . углубился в учебник пока , но не...

Подсчитать количество элементов одномерного массива, которые превосходят среднее арифметическое всех элементов массива
Подсчитать количество элементов одномерного массива, которые превосходят среднее арифметическое...

Найти максимальное значение элементов массива, а также номера всех элементов массива с этим значением
Дан массив из n элементов. Необходимо найти максимальное значение элементов массива, а также номера...


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

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

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