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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
#1

Массив размерности n+m - C++

23.10.2010, 23:01. Просмотров 1331. Ответов 21
Метки нет (Все метки)

Даны два упорядоченных числовых массива размерности n и m. Получить из них новый упорядоченный массив размерности n+m, не используя алгоритма сортировки.

P.S.очень нужна помощь.помогите пожалуйста.а то даже не понятно что делать...как бы что ли смешать два массива но так чтобы их элементы были упорядочены?...но как это...???...и еще без сортировки...((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2010, 23:01     Массив размерности n+m
Посмотрите здесь:

Массив переменной размерности - C++
Здравствуйте! Такой вопрос: мне нужно создать массив, размерность которого должна вводиться при запуске программы. Вот на это: int n; ...

Задан целочисленный массив размерности N - C++
//Задан целочисленный массив размерности N.Есть ли среди элементов массива простые числа ? Если да, то вывести номера этих элементов. ...

Массив произвольной размерности и работа с ним - C++
Доброго времени суток. Появилась интересная задача: создать функцию для создания массива, размерность которого укажут в ходе программы(то...

Динамический массив. Ввод размерности с клавиатуры - C++
Вечер добрый. Прошу помощи у Вас. Суть просьбы : создать динамический массив(квадрат) с размерностью n, n (вводится с клавиатуры)....

Массив: перемножения двух матриц A,B размерности n*n - C++
Разработать программу перемножения двух матриц A,B размерности n*n. Все матрицы размещаются в оперативной памяти динамически с помощью...

В массив заданной размерности N ввести произвольные числа - C++
В массив заданной размерности N ввести произвольные числа. Создать новый массив, поменяв местами столько равноудаленных от k - того...

Возможно ли создать массив неизвестной заранее размерности? - C++
Собственно, сабж в названии. Можно ли получить от пользователя N, где N - размерность массива, создать его и заполнить рандомными числами?...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 13:51  [ТС]     Массив размерности n+m #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 int n,m , ;
    int i,j;
      float X[100];
       float Y[100];
 cout<<"Vvedite razmernost pervogo massiva,uchtite,shto n>=m\n";
 cin>>n;
 cout<<"Vvedite pervuy massiv\n";
 for(i=0;i<n;i++)
   cin>>X[i];
 cout<<"Vvedite razmernost vtorogo\n";
 cin>>m;
 cout<<"Vvedite vtoroy massiv\n";
 for(i=0;i<m;i++)
 cin>>Y[i];
Добавлено через 1 минуту
как-то не нравится мне все это...((

Добавлено через 1 минуту
нее...тогда потом компилятор психует про массив с[i]....
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 200
24.10.2010, 13:53     Массив размерности n+m #17
я поняла)
до строки 19 надо выделить память под массив а
C++
1
a=new float[n];
так же с массивом b. попробуй)
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 14:00  [ТС]     Массив размерности n+m #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 j=0;
  for(i=0;i<n;i++,j++)
  {
     if(X[i]>=Y[i])
     {
       c[j]=Y[i];
       j++;
       c[j]=X[i];
     }
     else
     {
       c[j]=X[j];
       j++;
       c[j]=Y[i];
      }
  }
Не совсем понять этот цикл...к чему после j++; еще и c[j]=Y[i];

Добавлено через 2 минуты
IrishaIrinaChe, но это же уже тогда динамисемкий массив....а надо со статическим

Добавлено через 2 минуты
и к тому же что тогда с с делать...
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 200
24.10.2010, 14:03     Массив размерности n+m #19
твой массив С статичен, т к он объявлен как float c[100];
массивы а и b динамичны,т к заранее мы не знаем их размерность. перед работой с массивом надо выделить под него память. в своём коде я это указала. посмотри внимательней.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 14:16  [ТС]     Массив размерности n+m #20
а к чему счетчик j?

Добавлено через 2 минуты
cпокойно...я вижу что все в твоем коде правильно наверно....проблема в другом вообще нельзя нигде использовать динамический массив.а и b тоже должны быть статичны.

Добавлено через 3 минуты
все программа зароботала....только там в конце выдается еще случайное число....(( ай да ладно.
лучше поясните за что отвечает счетчик
Цитата Сообщение от barlog Посмотреть сообщение
j
Добавлено через 27 секунд
а к чему счетчик j?
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 200
24.10.2010, 14:17     Массив размерности n+m #21
допустим, что i=0. смотри, с[0] примет значение a[0], а вот c[1]=b[0]. заметь, счётчик массива с изменился, а вот a и b-нет. логично? к тому же, массивы a и b разной размерности. следовательно, массив с живёт своей отдельной жизнью с персональным счётчиком. если получится обойтись без j- буду за тебя рада)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 15:55     Массив размерности n+m
Еще ссылки по теме:

Задан массив a{ij} размерности MxM. Требуется вычислить - C++
S=\sum_{i=1}^{M}\sum_{j=1}^{M}\left|a{ij} \right|

Как глобально объявить массив не заданной размерности - C++
Цель: при нажатии на button1 создается массив и заполняется рандомными числами, длину массива получаем из TextBox1. А при нажатии на...

Как создать пустой массив определенной размерности? - C++
Не могу найти информацию как создать пустой массив. То есть выделить под него память, но ничем не заполнять? Задача: есть массив нужно...

Копирование чисел из массива в массив большей размерности - C++
Допустим есть числа 01100 в массиве. Мне необходимо их скопировать в новый массив который в 3 раза больше по размеру таким образом чтобы...

Как правильно объявить массив заданной пользователем размерности - C++
1 cout &lt;&lt; &quot;введите количество X: &quot;; 2 cin &gt;&gt; x; 3 double massiv; как сделать правильно, чтобы скомпелировалась программа ? ...


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

Или воспользуйтесь поиском по форуму:
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 15:55  [ТС]     Массив размерности n+m #22
ага.спасибо большое.

Добавлено через 6 минут
только вот смотри....хочу вникнуть полностью
C++
1
2
3
4
5
6
 if(X[i]>=Y[i])
     {
       c[j]=Y[i];
       j++;
       c[j]=X[i];
     }
это мы смотрим, если элемент массива Х больше У, то массиву С присваивается значения У ,потом увеличиваем счеткик массива С j на 1, и присваеваем следующему элементу С значение Х, т.к Х больше У.Так?

Добавлено через 1 минуту
если же не так ,то все наооборот.))вроде я разобралась))

Добавлено через 22 секунды
Спасибо))

Добавлено через 19 минут
а к чему вот это?
C++
1
2
3
if(n!=m)
 for(i=(n-1),j=(2*n-1);i<m;i++,j++)
  c[j]=Y[i];
Добавлено через 1 минуту
просто по ходу оно не работает...даже если его убрать, то ничего не меняется, он все равно пишет лишь бы что ,после того как n перестает равнятся m.

Добавлено через 42 минуты
IrishaIrinaChe, а вообще если честно твоя программа не работает....вот можешь сама посмотреть....она действительно только когда m и m равны....и если ввести например в первом массиве :1 3 ,а во втором: 4 и 5 то вообще неправильно выходит...но самое главное что если n не равно m то вообще бред выводится...
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
int main()
{      float X[100];
       float Y[100];
       float c[100];
   int n,m, i , j  ;
 cout<<"Vvedite razmernost pervogo massiva,uchtite,shto n>=m\n";
 cin>>n;
  cout<<"Vvedite elevementy pervuy massiv\n";
 for(i=0;i<n;i++)
 { cout<<" X["<<i<<"]= ";
   cin>>X[i]; }
 cout<<"Vvedite razmernost vtorogo\n";
 cin>>m;
  cout<<"Vvedite elevementy vtorogo massiv\n";
  for(i=0;i<m;i++)
  { cout<<" Y["<<i<<"]= ";
   cin>>Y[i]; }
 
 
  j=0;
 
  for(i=0;i<n;i++,j++)
  {
     if(X[i]>=Y[i])
     {
       c[j]=Y[i];
       j++;
       c[j]=X[i];
     }
     else
     {
       c[j]=X[i];
       j++;
       c[j]=Y[i];
      }
  }
 
 if(n!=m)
 for(i=(n-1),j=(2*n-1);i<m;i++,j++)
  c[j]=Y[i];
 
 
cout<<"Resultat\n";
for(i=0;i<(n+m);i++)
 cout<<c[i]<<"   ";
getch();
 
        return 0;
}
Кто-нибудь знает как по-другому решить....я уже больше не могу...(((

Добавлено через 17 минут
Короче я знаю как делать на паскале.Кто-нибудь очень умный может это переделать в С++.УМОЛЯЮ!!!

Delphi
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
{Ввод массивов A и B}
Ai:=1; Bi:=1; Ci:=1; {текущие индексы в массивах A,B,C}
while Ci<=N+M do begin
if A[Ai]>B[Bi]
then begin
C[Ci]:=B[Bi];
Bi:=Bi+1
end
else begin
C[Ci]:=A[Ai]; Ai:=Ai+1;
end
Ci:=Ci+1;
{Проверка окончания одного из массивов}
if Ai>N then for i:=Bi to M do
begin
C[Ci]:=B[Bi];
Bi:=Bi+1;
Ci:=Ci+1;
end;
if Bi>N then for i:=Ai to N do
begin
C[Ci]:=A[Ai];
Ai:=Ai+1;
Ci:=Ci+1;
end;
end; {while}
Yandex
Объявления
24.10.2010, 15:55     Массив размерности n+m
Ответ Создать тему
Опции темы

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