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

объединить 2 массива в 1 - C++

Восстановить пароль Регистрация
 
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:09     объединить 2 массива в 1 #1
Помогите с переводом pascal кода в C++
Pascal
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
program prog0523b;
uses crt;
 
var
  x, y: array[1..10] of integer;
  z: array[1..20] of integer;
  i: integer;
 
Begin
  clrscr;
  randomize;
  for i:= 1 to 10 do
  begin
    x[i]:= random(40) - 20;
    y[i]:= random(40) - 20;
  end;
 
  for i:= 1 to 10 do
  begin
    z[i]:= x[i];
    z[10+i]:= y[i];
  end;
 
  writeln('Massive X');
  for i:= 1 to 10 do
    write(x[i]:4);
  writeln;
  writeln('Massive Y');
  for i:= 1 to 10 do
    write(y[i]:4);
  writeln;
  writeln('Massive Z');
  for i:= 1 to 20 do
    write(z[i]:4);
  readkey;
End.
я тут сам накидал все что смог, но не до конца.
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
48
// 5.23   Даны значения двух целочисленных массивов x и y размером n.
//        Рассматривая массивы как конечные множества целых чисел, по-
//        строить массив z размером не более 2n, где
//        б) z=x объединение y
 
#include <stdio.h>
#include <math.h>
 
using namespace std;
 
int main();
{
    setlocale(LC_ALL, "Russian"); // локализация
    int a[10],b[10],z[20],i,n;  //размерность массива
 
    system("cls"); //очистка экрана
    do
    {
        cout<<"Введите размерность до 10 "<<endl;
        cin>>n;
    } 
        while (n>1 && n<10);
        for (i=0;i<10;i++)
            a[i]=rand()%40-20;
        cout<<"Исходный массив"<<endl;
        for (i=0;i<10;i++)
 
            {
                cout.width(4);
                cout<<a[i]<<" ";
            }
        {
        cout<<"Введите размерность до 10 "<<endl;
        cin>>n;
        } 
        while (n>1 && n<10);
        for (i=0;i<10;i++)
            b[i]=rand()%40-20;
        cout<<"Исходный массив"<<endl;
        for (i=0;i<10;i++)
            {
                cout.width(4);
                cout<<b[i]<<" ";
            }
        cout<<endl;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
serggg
53 / 37 / 5
Регистрация: 24.03.2013
Сообщений: 630
03.06.2013, 15:10     объединить 2 массива в 1 #2
А почему везде в программе вы используете
C++
1
while
, а не
C++
1
for
как в исходном коде?
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:12  [ТС]     объединить 2 массива в 1 #3
Цитата Сообщение от serggg Посмотреть сообщение
А почему везде в программе вы используете
C++
1
while
, а не
C++
1
for
как в исходном коде?
только начал постигать язык с++ мои нелепые ошибки
serggg
53 / 37 / 5
Регистрация: 24.03.2013
Сообщений: 630
03.06.2013, 15:18     объединить 2 массива в 1 #4
Сейчас сделаю!
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:20  [ТС]     объединить 2 массива в 1 #5
serggg, жду Вас.
serggg
53 / 37 / 5
Регистрация: 24.03.2013
Сообщений: 630
03.06.2013, 15:29     объединить 2 массива в 1 #6
Вот как-то так это будет выглядеть:
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
48
49
50
// 5.23   Даны значения двух целочисленных массивов x и y размером n.
//        Рассматривая массивы как конечные множества целых чисел, по-
//        строить массив z размером не более 2n, где
//        б) z=x объединение y
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian"); // локализация
    int a[10],b[10],z[20],i,n1,n2,nz;  //размерность массива
 
    system("cls"); //очистка экрана
    cout<<"Введите размерность первого массива (неболее 10): "<<endl;
    cin>>n1;
 
    for (i=0;i<n1;i++)
        a[i]=rand()%40-20;
 
    cout<<"Исходный первый массив: "<<endl;
    for (i=0;i<n1;i++)
        cout<<"a["<<i+1<<"]="<<a[i]<<endl;
 
    cout<<"Введите размерность второго массива (неболее 10): "<<endl;
    cin>>n2;
 
    for (i=0;i<n2;i++)
        b[i]=rand()%40-20;
 
    cout<<"Исходный второй массив: "<<endl;
    for (i=0;i<n2;i++)
        cout<<"b["<<i+1<<"]="<<b[i] <<endl;
 
    nz=n1+n2;
 
    for(i=0;i<n1;i++)
        z[i]=a[i];
 
    for(i=0;i<n2;i++)
        z[n1+i]=b[i];
 
    cout<<"Массив, получившийся после конкатенации 2-х исходных массивов: "<<endl;
    for(i=0;i<nz;i++)
        cout<<"z["<<i+1<<"]="<<z[i] <<endl;
 
    system("pause");
    return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.06.2013, 15:30     объединить 2 массива в 1 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main(){
    std::vector<int> a{1,2,3,4,5,6,7};
    std::vector<int> b{-1,-2,-3,-4,-5};
    std::vector<int> result;
    
    std::merge(a.begin(), a.end(), b.begin(), b.end(), std::inserter(result, result.begin()));
    std::copy(result.begin(), result.end(),std::ostream_iterator<int>(std::cout," "));
    
    std::cout<<std::endl;
    return 0;
}
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:36  [ТС]     объединить 2 массива в 1 #8
ошибка выводится
Миниатюры
объединить 2 массива в 1  
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:40  [ТС]     объединить 2 массива в 1 #9
serggg, извини, мой косяк, все работает, благодарю тебя!
serggg
53 / 37 / 5
Регистрация: 24.03.2013
Сообщений: 630
03.06.2013, 15:41     объединить 2 массива в 1 #10
Скрин самих ошибок, которые выдаёт компилятор можете выложить?
Вкладка: Вид->Другие_окна->Список_ошибок
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:44  [ТС]     объединить 2 массива в 1 #11
Цитата Сообщение от serggg Посмотреть сообщение
Скрин самих ошибок, которые выдаёт компилятор можете выложить?
Вкладка: Вид->Другие_окна->Список_ошибок
я не правильно проект создал, сейчас разобрался)
serggg
53 / 37 / 5
Регистрация: 24.03.2013
Сообщений: 630
03.06.2013, 15:49     объединить 2 массива в 1 #12
Понятно!
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 17:39  [ТС]     объединить 2 массива в 1 #13
serggg, а как сделать вывод в строчку?

Добавлено через 6 минут
Цитата Сообщение от wazler Посмотреть сообщение
serggg, а как сделать вывод в строчку?
разобрался.
serggg
53 / 37 / 5
Регистрация: 24.03.2013
Сообщений: 630
03.06.2013, 18:05     объединить 2 массива в 1 #14
Так например:
C++
1
2
3
cout<<"Массив, получившийся после конкатенации 2-х исходных массивов: "<<endl;
    for(i=0;i<nz;i++)
        cout<<"z["<<i+1<<"]="<<z[i] <<"\t"; // \t - это табуляция
Или просто вот так:
C++
1
2
3
cout<<"Массив, получившийся после конкатенации 2-х исходных массивов: "<<endl;
    for(i=0;i<nz;i++)
        cout<<"z["<<i+1<<"]="<<z[i] <<" "; //после каждого элемента пробел
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 12:35     объединить 2 массива в 1
Еще ссылки по теме:

Объединить два массива чередуя элементы C++
Определить массив строк А(3), объединить строки массива C++
C++ Объединить два упорядоченных массива в один

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

Или воспользуйтесь поиском по форуму:
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
05.06.2013, 12:35  [ТС]     объединить 2 массива в 1 #15
serggg, а как сделать, так чтобы при выводе массива z элементы которые повторяются не выводились, тоесть если массив а[1.2.5.3] массив b[1.1.8.7] массив z[1.2.5.3.8.7] как то так?
Yandex
Объявления
05.06.2013, 12:35     объединить 2 массива в 1
Ответ Создать тему
Опции темы

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