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

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

Войти
Регистрация
Восстановить пароль
 
Fanik
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 3
#1

В функции записать 2 массива в 1 - C++

14.11.2013, 16:26. Просмотров 260. Ответов 1
Метки нет (Все метки)

Здравствуйте! Прошу помощи с задачкой, не могу никак разобраться...

Есть два отсортированных массива double a[100] и double b[100].
Напишите функцию, которая заполняет массив double c[200] числами из массивов a и b так,
чтобы он тоже был отсортирован.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 16:26     В функции записать 2 массива в 1
Посмотрите здесь:

Как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение - C++
Здравствуйте! Подскажите, как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение. ...

На четные места массива записать элементы с нечётными индексами из исходного массива - C++
Хэй,ребят. Нужно решить задачу ,а задача такова: Ввести два целочисленных массива по n элементов в каждом. Сформировать новый массив ,на...

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

Как записать в виде функции? - C++
Написал алгоритм побайтового сравнения двух массивов разной длины... Помогите составить функцию плз... for (int a = 0; a <...

Как правильно записать функции? - C++
Как правильно записать функции? #include <iostream> #include <math.h> using namespace std; void slag(int S){ int i=1; ...

записать в виде отдельной функции - C++
Текст программы: #include <mega128.h> #include <delay.h> void main() { char a=5; DDRD=0xff; while...

Записать элементы массива Х в массив У, сместив элементы массива Х вправо на 3 позиции - C++
Записать элементы массива Х в массив У, сместив элементы массива Х вправо на 3 позиции

Записать элементы массива Х в массив У, сместив элементы массива Х вправо на 3 позиции - C++
Записать элементы массива Х в массив У, сместив элементы массива Х вправо на 3 позиции, при этом 3 элемента массива Х перемещаются в начало

Записать значения функции на промежутке в файл - C++
Здравствуйте. я выполнял задание: В соответствии с Вашим вариантом напишите и отладьте программу, которая записывает в двоичный файл...

Записать результаты протабулированой функции в массив - C++
Здравствуйте, подскажите пожалуйста как можно записать результаты протабулированой функии в массив? таким способом у меня не...

Записать в одномерный массив значения функции - C++
Записать в массив значения функции f(x)=x^2+b для х=1,2,..,20 и вывести его на экран

Записать в файл результат работы функции - C++
Можно ли вообще след. программу записать в файл ? Для этой проги ничего на форуме не нашел, а что нашел, не подходит особо ( ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vivo
23 / 23 / 2
Регистрация: 27.09.2009
Сообщений: 101
14.11.2013, 17:32     В функции записать 2 массива в 1 #2
Можно вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    int SizeA = sizeof ( a ) / sizeof ( *a );
    int SizeB = sizeof ( b ) / sizeof ( *b );
    
    int *c=new int[SizeA+SizeB];
 
    for(int i=0,aIndex=0,bIndex=0;i<SizeA+SizeB;i++)
    {
 
        if((a[aIndex]<=b[bIndex])&&(aIndex<SizeA))
        {
            c[i]=a[aIndex];
            aIndex++;
        }
        else
        {
            c[i]=b[bIndex];
            bIndex++;
        }
 
    }
Если размеры массивов одинаковы, то работает.

Добавлено через 30 минут
Подправил и сократил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int a[]={1,3,4,5,7,7,8};
    int b[]={1,2,3,5,6,9};
 
    int SizeA = sizeof ( a ) / sizeof ( *a );
    int SizeB = sizeof ( b ) / sizeof ( *b );
    
    int *c=new int[SizeA+SizeB];
 
    for(int i=0,aIndex=0,bIndex=0;i<SizeA+SizeB;i++)
    {
 
        c[i]=(a[aIndex]<=b[bIndex])?(aIndex<SizeA)?a[aIndex++]:b[bIndex++]:(bIndex>=SizeB)?a[aIndex++]:b[bIndex++];
    }
 
    for(int i=0;i<SizeA+SizeB;i++)
    {
        cout<<c[i]<<endl;
    }
Yandex
Объявления
14.11.2013, 17:32     В функции записать 2 массива в 1
Ответ Создать тему
Опции темы

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