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

Создание минимально возможного третьего динамического массива из двух - C++

Восстановить пароль Регистрация
 
lesha1980
 Аватар для lesha1980
3 / 3 / 0
Регистрация: 06.01.2012
Сообщений: 42
07.03.2012, 20:27     Создание минимально возможного третьего динамического массива из двух #1
Подскажите в чем ошибка. Есть код
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
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int a=10;
int b=5;
//запрашиваем у пользователя размер масивов
cout<<"Enter length of your first massive->>";
cin>>a;
cout<<endl;
cout<<"Enter length of your second massive->>";
cin>>b;
int *mas=new int[a];
int *mass=new int[b];
//заполним оба массива
srand(time(NULL));
for(int i=0;i<a;i++)
{
    mas[i]=rand()%100;
    cout<<"mas="<<mas[i]<<endl;
}
cout<<endl;
for(int i=0;i<b;i++)
{
    mass[i]=rand()%100;
    cout<<"mass="<<mass[i]<<endl;
}
 
//минимально возможный массив в данном случае будет суммой размеров предыдущих массивов
int *m=new int[a+b];
//заполним новый массив элементами двух первых массивов
for(int i=0;i<a+b;i++)
{
     if(i<a)m[i]=mas[i];
     if(i>a)m[i]=mass[i];
}
for(int i=0;i<a+b;i++)
    cout<<"m="<<m[i]<<endl;
 
 
 
return 0;
}
согласно коду есть два динамических массива, заполненных случайными числами... из них нужно сделать третий массив минимально возможного размера, чтобы этот массив мог вмещать в себя элементы двух первых массивов...я попробовал собрать их вместе, но что только не делаю ничего не получается... я пытаюсь скопировать элементы первого массива в третий и элементы второго массива в третий, однако что не делаю получается скопировать лишь элементы первого массива, а при копировании второго массива в третий, на места не занятые элементами из первого массива ничего не получается...вместо них выходят лишь какие-то непонятные огромные цифры, которых во втором массиве просто быть не может... Подскажите в чем ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
07.03.2012, 21:13     Создание минимально возможного третьего динамического массива из двух #2
Цитата Сообщение от lesha1980 Посмотреть сообщение
//заполним новый массив элементами двух первых массивов
for(int i=0;i<a+b;i++)
{
* * *if(i<a)m[i]=mas[i];
* * * * *if(i>a)m[i]=mass[i];
}
Пока i < a все ОК! Но потом со второго массива ты пытаешся взять элементы, которых нету.
Например,
первый массив mas - длиной 3
второй массив mass - длиной 2
в цикле имеем:
m[0] = mas[0]
m[1] = mas[1]
m[2] = mas[2]
m[3] = mass[3] //неверно
m[4] = mass[4] //неверно
lesha1980
 Аватар для lesha1980
3 / 3 / 0
Регистрация: 06.01.2012
Сообщений: 42
07.03.2012, 21:28  [ТС]     Создание минимально возможного третьего динамического массива из двух #3
Цитата Сообщение от Игорь Миронюк Посмотреть сообщение
Пока i < a все ОК! Но потом со второго массива ты пытаешся взять элементы, которых нету.
Например,
первый массив mas - длиной 3
второй массив mass - длиной 2
в цикле имеем:
m[0] = mas[0]
m[1] = mas[1]
m[2] = mas[2]
m[3] = mass[3] //неверно
m[4] = mass[4] //неверно
Игорь, спасибо! Я понял. Когда отнял у mass[i] длину первого массива "a" и в условии сделал i>=a, то все получилось...
Теперь так...
C++
1
2
3
4
5
6
7
for(int i=0;i<a+b;i++)
{
     if(i<a)m[i]=mas[i];
     else if(i>=a)m[i]=mass[i-a];
}
for(int i=0;i<a+b;i++)
    cout<<"m="<<m[i]<<endl;
Просто супер...!
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
07.03.2012, 21:30     Создание минимально возможного третьего динамического массива из двух #4
Молодец
Yandex
Объявления
07.03.2012, 21:30     Создание минимально возможного третьего динамического массива из двух
Ответ Создать тему
Опции темы

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