0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 21
1

Описать класс Массив, найти массив, состоящий из элементов первого и второго массива

30.09.2016, 13:09. Показов 632. Ответов 4
Метки нет (Все метки)

Процедура по поиску такого массива работает, но после нее меняются элементы первого массива.
И еще вопрос - как в конце программы освободить память от динамического массива?

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
51
52
53
54
55
56
57
58
#include <iostream>
#include <conio.h>
#include <cstring>
#include <stdlib.h>
using namespace std;
 
class Array
  {
   public:
        Array(int);
        int n;
        char name[10];
        int *arr;
        void Input();
        void Output();
        void Sum(Array, Array);
        ~Array() {delete [] arr;};
    };
 
   Array::Array(int k)
   {if (k>0) n=k;
    arr=new int[n];
   }
   
   void Array::Input()
   {cout<<"Name:"; cin>>name;
    for(int i=0; i<n; i++) arr[i]=rand()%100-rand()%100;}
   
   void Array::Output()
   {cout<<"Array "<<name<<":"<<endl;
    for(int i=0; i<n; i++) cout<<arr[i]<<" ";
    cout<<endl;}
    
    void Array::Sum(Array a, Array b)
    {int k=0;
     n=a.n+b.n;
     for(int i=0;i<a.n;i++)
       arr[i]=a.arr[i];
     for(int i=a.n;i<n;i++)
       {arr[i]=b.arr[k]; k++;}
    }
    
    int main()
    {Array x(10),y(20),z(30);
     x.Input(); x.Output(); 
     y.Input(); y.Output(); 
     
     z.Sum(x,y);
     cout<<"Array a+b:"<<endl;
     z.Output(); 
     cout<<endl;
     
     x.Output(); 
     y.Output(); 
 
     getch();
     return 0;
        }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2016, 13:09
Ответы с готовыми решениями:

Сформировать массив из элементов, больших второго элемента первого массива и положительных элементов второго
Сформировать массив из элементов исходных массивов, больших второго элемента первого массива и...

Даны два одномерных массива целых чисел (массив А, состоящий из n элементов, массив В, состоящий из m элементов),
Даны два одномерных массива целых чисел (массив А, состоящий из n элементов, массив В, состоящий из...

Рассортировать массив по убыванию числа от начала массива до первого экстремума, от первого до второго, от второго до конца массива.
Посмотрите и помогите кто может PLEASE Создать два одномерных массива А и В различной длинны. ...

Создать второй массив, состоящий из отрицательных элементов первого массива
2. Дан одномерный массив .создать второй массив, состоящий из отрицательных элементов первого...

4
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
30.09.2016, 13:28 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <conio.h>
#include <cstring>
#include <stdlib.h>
using namespace std;
 
class Array
  {
   public:
        Array(int);
        int n;
        char name[10];
        int *arr;
        void Input();
        void Output();
        Array& Sum(Array, Array);
        ~Array() {delete [] arr;};
    };
 
   Array::Array(int k)
   {if (k>0) n=k;
    arr=new int[n];
   }
 
   void Array::Input()
   {cout<<"Name:"; cin>>name;
    for(int i=0; i<n; i++) arr[i]=rand()%100-rand()%100;}
   
   void Array::Output()
   {cout<<"Array "<<name<<":"<<endl;
    for(int i=0; i<n; i++) cout<<arr[i]<<" ";
    cout<<endl;}
    
    Array& Array::Sum(Array a, Array b)
    {int k=0;
     n=a.n+b.n;
     Array s(n);
     for(int i=0;i<a.n;i++)
       s[i].arr[i] =a.arr[i];
     for(int i=a.n;i<n;i++)
       {s[i].arr[i]=b.arr[k]; k++;}
 
     return s;
    }
    
    int main()
    {Array x(10),y(20),z(30);
     x.Input(); x.Output(); 
     y.Input(); y.Output(); 
     
     z = Array::Sum(x,y);
     cout<<"Array a+b:"<<endl;
     z.Output(); 
     cout<<endl;
     
     x.Output(); 
     y.Output(); 
 
     getch();
     return 0;
        }
0
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 21
30.09.2016, 13:30  [ТС] 3
Вылезло вот это
Миниатюры
Описать класс Массив, найти массив, состоящий из элементов первого и второго массива  
0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
30.09.2016, 13:34 4
Вот исправил. Посмотрите.

Добавлено через 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <conio.h>
#include <cstring>
#include <stdlib.h>
using namespace std;
 
class Array
  {
   public:
        Array(int);
        int n;
        char name[10];
        int *arr;
        void Input();
        void Output();
        Array& Sum(Array, Array);
        ~Array() {delete [] arr;};
    };
 
   Array::Array(int k)
   {if (k>0) n=k;
    arr=new int[n];
   }
 
   void Array::Input()
   {cout<<"Name:"; cin>>name;
    for(int i=0; i<n; i++) arr[i]=rand()%100-rand()%100;}
   
   void Array::Output()
   {cout<<"Array "<<name<<":"<<endl;
    for(int i=0; i<n; i++) cout<<arr[i]<<" ";
    cout<<endl;}
    
    Array& Array::Sum(Array a, Array b)
    {int k=0;
     n=a.n+b.n;
     Array s(n);
     for(int i=0;i<a.n;i++)
       s[i].arr[i] =a.arr[i];
     for(int i=a.n;i<n;i++)
       {s[i].arr[i]=b.arr[k]; k++;}
 
     return s;
    }
    
    int main()
    {Array x(10),y(20),z(30);
     x.Input(); x.Output(); 
     y.Input(); y.Output(); 
     
     z = x.Sum(x,y); // на всякий случай.
     cout<<"Array a+b:"<<endl;
     z.Output(); 
     cout<<endl;
     
     x.Output(); 
     y.Output(); 
 
     getch();
     return 0;
        }
0
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 21
30.09.2016, 13:37  [ТС] 5
Все равно меняются, и сумма теперь тоже не соответствует сумме исходных
Миниатюры
Описать класс Массив, найти массив, состоящий из элементов первого и второго массива  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2016, 13:37
Помогаю со студенческими работами здесь

Получить массив, состоящий из элементов первого массива, которых нет во втором
Даны два упорядоченных по убыванию массива, получить упорядоченную по возрастанию массив, состоящий...

Сформировать новый массив из отрицательных элементов первого массива с четными номерами и элементов второго массива
Помогите пожалуйста очень срочно нужно сделать программу. Сформировать новый массив из...

Сформировать новый массив из положительных элементов первого массива и элементов второго массива
Сформировать новый массив из положительных элементов первого массива и элементов второго массива,...

Получить упорядоченный по возрастанию массив, состоящий из элементов первого массива, которых нет во втором
Народ, помогите, пожалуйста. Студенту нужна помощь. Ссаными тряпками не кидайтесь Суть вопроса....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru