С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
#1

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

03.06.2013, 15:09. Просмотров 897. Ответов 14
Метки нет (Все метки)

Помогите с переводом 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 15:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объединить два массива в один (C++):

Как объединить два массива в один? - C++
Вот к примеру есть два массива: int A={1,2,3,4}; int B={5,6,7,8}; Как создать третий массив С , в котором будут содержаться...

Объединить два упорядоченных массива в один - C++
Заданы два упорядоченных массива А и В, состоящих из N и M вещественных элементов соответственно. Соединить их в один массив С, так чтобы...

Объединить два упорядоченных по возрастанию массива в один - C++
Написать программу, которая объединяет два упорядоченных по возрастанию массива в один, также упорядоченный массив.Рекомендуемый вид экрана...

Объединить два упорядоченных по неубыванию массива в один - C++
Даны два одномерных массива, содержащих по N и M элементов, упорядоченных по не убыванию. Написать программу, формирующую новый массив из...

Два двумерных массива объединить в один двумерный - C++
Даны два двумерных массива LL; PER; Нужно их объединить в один Mas чтобы порядок чисел сохранился

Заданы два массива F(36) и S(36). Объединить их в один следующим образом - C++
Задача с использованием двух функций: Заданы два массива F(36) и S(36). Объединить их в один следующим образом F1S1 F2F3S2S3 ...

14
serggg
55 / 39 / 6
Регистрация: 24.03.2013
Сообщений: 901
Завершенные тесты: 1
03.06.2013, 15:10 #2
А почему везде в программе вы используете
C++
1
while
, а не
C++
1
for
как в исходном коде?
0
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:12  [ТС] #3
Цитата Сообщение от serggg Посмотреть сообщение
А почему везде в программе вы используете
C++
1
while
, а не
C++
1
for
как в исходном коде?
только начал постигать язык с++ мои нелепые ошибки
0
serggg
55 / 39 / 6
Регистрация: 24.03.2013
Сообщений: 901
Завершенные тесты: 1
03.06.2013, 15:18 #4
Сейчас сделаю!
1
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:20  [ТС] #5
serggg, жду Вас.
0
serggg
55 / 39 / 6
Регистрация: 24.03.2013
Сообщений: 901
Завершенные тесты: 1
03.06.2013, 15:29 #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;
}
1
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.06.2013, 15:30 #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;
}
0
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:36  [ТС] #8
ошибка выводится
0
Миниатюры
Объединить два массива в один  
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:40  [ТС] #9
serggg, извини, мой косяк, все работает, благодарю тебя!
0
serggg
55 / 39 / 6
Регистрация: 24.03.2013
Сообщений: 901
Завершенные тесты: 1
03.06.2013, 15:41 #10
Скрин самих ошибок, которые выдаёт компилятор можете выложить?
Вкладка: Вид->Другие_окна->Список_ошибок
0
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 15:44  [ТС] #11
Цитата Сообщение от serggg Посмотреть сообщение
Скрин самих ошибок, которые выдаёт компилятор можете выложить?
Вкладка: Вид->Другие_окна->Список_ошибок
я не правильно проект создал, сейчас разобрался)
0
serggg
55 / 39 / 6
Регистрация: 24.03.2013
Сообщений: 901
Завершенные тесты: 1
03.06.2013, 15:49 #12
Понятно!
1
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
03.06.2013, 17:39  [ТС] #13
serggg, а как сделать вывод в строчку?

Добавлено через 6 минут
Цитата Сообщение от wazler Посмотреть сообщение
serggg, а как сделать вывод в строчку?
разобрался.
0
serggg
55 / 39 / 6
Регистрация: 24.03.2013
Сообщений: 901
Завершенные тесты: 1
03.06.2013, 18:05 #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] <<" "; //после каждого элемента пробел
1
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
05.06.2013, 12:35  [ТС] #15
serggg, а как сделать, так чтобы при выводе массива z элементы которые повторяются не выводились, тоесть если массив а[1.2.5.3] массив b[1.1.8.7] массив z[1.2.5.3.8.7] как то так?
0
05.06.2013, 12:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 12:35
Привет! Вот еще темы с ответами:

Объединить два упорядоченных по возрастанию массива в один. Нужны комментарии - C++
#include &lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; /* run this program using the console pauser or add your own getch,...

Объединить два упорядоченных по возрастанию массива в один, также упорядоченный массив - C++
Написать программу, которая объединяет два упорядоченных по возрастанию массива в один, также упорядоченный массив. Рекомендуемый вид...

Объединить два одномерных массива в один двумерный массив, состоящий из двух столбцов - C++
Объединить два одномерных массива в один двумерный массив, состоящий из двух столбцов. Помогите написать код на С++.

Объединить два массива в один так, чтобы в полученном массиве были только не совпадающие элементы - C++
Всем привет! Есть два массива, в которых есть одинаковые элементы: B={2,4,5} и С{0,5,6}. Нужно объединить два массива в один так, чтобы в...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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