Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/64: Рейтинг темы: голосов - 64, средняя оценка - 4.64
 Аватар для Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458

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

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

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

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

Удвоение элементов массива
Задача такова: На вход дается массив вида , а на выходе должен быть массив вида . По идее все же просто, нужно перебирая головы...

удвоение отрицательных элементов
в файле есть числа положительные и отрицательные и нужно удвоить отрицательные? находим отрицательный и на его место ставим все элементы...

Удвоение всех положительных элементов матриц
2. Удвоение всех положительных элементов матриц.

15
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 11:11
Вроде, как написано удвоить, т.е. умножить на 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
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
22.06.2016, 11:11
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
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 121
22.06.2016, 11:13
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
 Аватар для Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 11:18  [ТС]
Благодарю всех за ответы.
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 11:19
Цитата Сообщение от 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  [ТС]
Цитата Сообщение от nstwf Посмотреть сообщение
Тут 4 элемента нужно вводить, ибо индексация с 0.
Можно указать индексацию не с 0 а к примеру с 1. если я правильно понял.
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 11:29
Цитата Сообщение от 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  [ТС]
Программы хорошие но есть одно но я только начал изучат с++ и потому некоторых команд пока не знаю и потому не могли-бы вы написать чуть по проще.

Т.к. сама идея в том чтоб я понял как это делать а не просто получил готовую прогу
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 12:00
Цитата Сообщение от 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  [ТС]
Цитата Сообщение от nstwf Посмотреть сообщение
С комментариями, надеюсь, понятнее. Спрашивайте, если что не так.
Ваша программа копирует насколько я понял то есть 1.2.3.1.2.3. вот, а нужно чтоб 1.1.2.2.3.3.
0
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
22.06.2016, 12:14
C++
1
int n[3]={1,2,3}
Цитата Сообщение от nstwf Посмотреть сообщение
Тут 4 элемента нужно вводить, ибо индексация с 0.
Неверно.
2
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 12:20
Цитата Сообщение от stzer Посмотреть сообщение
Неверно.
Упс, извиняюсь, немного спутал с другим
0
 Аватар для Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
22.06.2016, 12:24  [ТС]
Цитата Сообщение от 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
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
22.06.2016, 12:37
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  [ТС]
Цитата Сообщение от 1Вирт1 Посмотреть сообщение
Даже пару вещей исправил))
спс за коменты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.06.2016, 12:42
Помогаю со студенческими работами здесь

Удвоение каждого элемента массива, порядковый номер которого кратен 3
1. Составить программу удвоения каждого элемента массива A(n), порядковый номер которого кратен 3. :boredom: Для каждой задачи...

Удвоение всех вхождений элементов, расположенных на четных (0-четное) позициях
Разработать два метода для класса List (однонаправленный список и двунаправленный список). Удвоение всех вхождений элементов,...

Определение наименьшего из элементов главной диагонали. 2.Удвоение значений столбцов матрицы.
Разработать программу длявыполнения над матрицей размера 5x5 операций в соответствии с вариантом.На печать вывести исходную матрицу и...

Удвоение всех вхождений элементов, расположенных на четных (0-четное) позициях (DublicateOnEvenPos()
Удвоение всех вхождений элементов, расположенных на четных (0-четное) позициях (DublicateOnEvenPos()). не могу понять почему не удваивает...

Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos()
Помогите, не знаю, как запилить прогу Задание Удвоение в массиве всех вхождений элементов, расположенных на четных (0-четное) позициях...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru