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

Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. - C++

Восстановить пароль Регистрация
 
STyDeNTuK
30 / 12 / 3
Регистрация: 22.09.2009
Сообщений: 157
07.11.2011, 23:06     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. #1
Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. Помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 23:06     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения.
Посмотрите здесь:

Даны два двухмерных массива одинаковых размеров. Создать третий массив такого же размера, каждый элемент которого равен 100 C++
C++ Даны 2 упорядоченных одномерных массива. создать 3 одномерный массив, содержащий упорядоченные элементы 1 и 2 массива.
C++ Даны два массива А и В, получить массив C
C++ 11.247. Даны два массива одного размера. Получить третий массив, каждый элемент которого равен:сумме элементов с тем же номером в заданных массивах
C++ Сформировать динамический массив, состоящий из динамических строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
07.11.2011, 23:35     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. #2
ну есть такой вариант)
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>
#include <time.h>
using namespace std;
int main ()
{
    setlocale(LC_ALL,"rus");
    int *a, *b, *c;
    int n, m;
    cout << "Введите n: ";
    cin >> n;
    cout << "Введите m:";
    cin >> m;
    int f = m + n;
    a = new int [n];
    b = new int [m];
    c = new int [f];
    for(int i = 0; i < f; i++)
        c[i] = 0;
    for(int i = 0; i < n; i++)
    {
        a[i] = rand() % 20 - 10;
        c[i] = a[i];
    }
    for(int i = 0; i < m; i++)
    {
        if(i > n - 1)
        {
            b[i] = rand() % 20 - 10;
            c[i] = b[i];
        }
        else
        {
            b[i] = rand() % 20 - 10;
            c[i] += b[i];
        }
    }
    for(int i = 0; i < f; i++)
    {
        if(c[i] == 0)
            break;
        cout << c[i] << endl;
    }
    delete []a;
    delete []b;
    delete []c;
    system("pause");
}
STyDeNTuK
30 / 12 / 3
Регистрация: 22.09.2009
Сообщений: 157
07.11.2011, 23:48  [ТС]     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. #3
большое спасибо, и это конечно же моя ошибка, но мне нужен код на си а не си++
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
08.11.2011, 00:26     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. #4
эт уже не ко мне. Я с распределением памяти и случайными числами в С не дружу)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.11.2011, 00:49     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. #5
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
#include <stdio.h>
#include <stdlib.h>
 
char *merge(const char *arr1, size_t size1, const char *arr2, size_t size2)
{
    char *arr3 = (char *)malloc((size1 + size2) * sizeof(char));
 
    size_t i;
 
    for (i = 0; i < size1; ++i)
        *(arr3 + i) = *(arr1 + i);
 
    for (i = 0; i < size2; ++i)
        *(arr3 + i + size1) = *(arr2 + i);
 
    return arr3;
}
 
#define N 5
 
int main()
{
    int *arr1 = (int *)malloc(N * sizeof(int));
    int *arr2 = (int *)malloc(N * sizeof(int));
    int *arr3;
 
    size_t i;
 
    for (i = 0; i < N; ++i)
        arr1[i] = i;
 
    for (i = 0; i < N; ++i)
        arr2[i] = i + N;
 
    arr3 = (int *)merge((const char *)arr1, N * sizeof(*arr1), (const char *)arr2, N * sizeof(*arr2));
 
    for (i = 0; i < 2 * N; ++i)
        printf("%d  ", arr3[i]);
 
    printf("\n");
 
    return 0;
}
TR0JlNk
0 / 0 / 0
Регистрация: 21.02.2012
Сообщений: 36
15.05.2012, 22:27     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. #6
Цитата Сообщение от amor1k Посмотреть сообщение
ну есть такой вариант)
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>
#include <time.h>
using namespace std;
int main ()
{
    setlocale(LC_ALL,"rus");
    int *a, *b, *c;
    int n, m;
    cout << "Введите n: ";
    cin >> n;
    cout << "Введите m:";
    cin >> m;
    int f = m + n;
    a = new int [n];
    b = new int [m];
    c = new int [f];
    for(int i = 0; i < f; i++)
        c[i] = 0;
    for(int i = 0; i < n; i++)
    {
        a[i] = rand() % 20 - 10;
        c[i] = a[i];
    }
    for(int i = 0; i < m; i++)
    {
        if(i > n - 1)
        {
            b[i] = rand() % 20 - 10;
            c[i] = b[i];
        }
        else
        {
            b[i] = rand() % 20 - 10;
            c[i] += b[i];
        }
    }
    for(int i = 0; i < f; i++)
    {
        if(c[i] == 0)
            break;
        cout << c[i] << endl;
    }
    delete []a;
    delete []b;
    delete []c;
    system("pause");
}

и где здесь видно, что дан массив?
Yandex
Объявления
15.05.2012, 22:27     Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения.
Ответ Создать тему
Опции темы

Текущее время: 18:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru