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

Объединение массивов - C++

Восстановить пароль Регистрация
 
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
21.11.2011, 01:33     Объединение массивов #1
Всем добрый вечер, лазил по сайту, ничего толком не нашел.
Вопрос такой : как объединить два вводимых с клавиатуры массива в третий? если можно наиболее простым способом.

Добавлено через 40 минут
массив одномерный
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2011, 01:33     Объединение массивов
Посмотрите здесь:

Объединение двух массивов C++
Объединение массивов! C++
Объединение массивов C++
Объединение двух массивов C++
C++ Объединение массивов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
edward_jonson
 Аватар для edward_jonson
157 / 157 / 25
Регистрация: 23.02.2011
Сообщений: 388
21.11.2011, 01:59     Объединение массивов #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
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
void main()
{
    int i, mas1size, mas2size, *mas1, *mas2, *mas3;
    printf ("Vvedite razmeri massivov 1 i 2:\n");
    scanf("%d%d",&mas1size,&mas2size);
    mas1=(int*)malloc(mas1size*sizeof(int));
    mas2=(int*)malloc(mas2size*sizeof(int));
    printf ("zapolnite pervii massiv:\n");
    for (i=0;i<mas1size;i++)
    scanf("%d",&mas1[i]);
    printf ("zapolnite vtoroy massiv:\n");
    for (i=0;i<mas2size;i++)
    scanf("%d",&mas2[i]);
    mas3=(int*)malloc((mas1size+mas2size)*sizeof(int));
    for (i=0;i<mas1size+mas2size;i++)
   {
        if (i<mas1size) mas3[i]=mas1[i];
        else mas3[i]=mas2[i-mas1size];
   }
    for (i=0;i<mas1size+mas2size;i++)
    printf ("%d ",mas3[i]);
    getch();
}
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
21.11.2011, 14:54  [ТС]     Объединение массивов #3
Не могли бы вы объяснить эти строки :
mas1=(int*)malloc(mas1size*sizeof(int));
mas2=(int*)malloc(mas2size*sizeof(int)); ?
Сыроежка
Заблокирован
21.11.2011, 15:12     Объединение массивов #4
Цитата Сообщение от Deemk0 Посмотреть сообщение
Не могли бы вы объяснить эти строки :
mas1=(int*)malloc(mas1size*sizeof(int));
mas2=(int*)malloc(mas2size*sizeof(int)); ?
Функция malloc предназначена для динамического выделения участка памяти, размер которого задается аргументом функции. В данном случае, например, в первой строке запрашивается память размером, определяемым выражением mas1size*sizeof(int). То есть запрашивается память под mas1size целых чисел.
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
21.11.2011, 15:18  [ТС]     Объединение массивов #5
для чего вообще писать строки
mas1=(int*)malloc(mas1size*sizeof(int));
mas2=(int*)malloc(mas2size*sizeof(int));
mas3=(int*)malloc((mas1size+mas2size)*sizeof(int)); ?

Ведь в таком виде, объединение двух массивов происходит
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int i, mas1size, mas2size, *mas1, *mas2, *mas3;
        printf ("Vvedite razmeri massivov 1 i 2:\n");
        scanf("%d%d",&mas1size,&mas2size);
        
        printf ("zapolnite pervii massiv:\n");
        for (i=0;i<mas1size;i++)
        scanf("%d",&mas1[i]);
        printf ("zapolnite vtoroy massiv:\n");
        for (i=0;i<mas2size;i++)
        scanf("%d",&mas2[i]);
       
        for (i=0;i<mas1size+mas2size;i++)
   {
                if (i<mas1size) mas3[i]=mas1[i];
                else mas3[i]=mas2[i-mas1size];
   }
        for (i=0;i<mas1size+mas2size;i++)
        printf ("%d ",mas3[i]);
        getch();
}
Yandex
Объявления
21.11.2011, 15:18     Объединение массивов
Ответ Создать тему
Опции темы

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