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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
23.10.2010, 23:01     Массив размерности n+m #1
Даны два упорядоченных числовых массива размерности n и m. Получить из них новый упорядоченный массив размерности n+m, не используя алгоритма сортировки.

P.S.очень нужна помощь.помогите пожалуйста.а то даже не понятно что делать...как бы что ли смешать два массива но так чтобы их элементы были упорядочены?...но как это...???...и еще без сортировки...((
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrishaIrinaChe
 Аватар для 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
Еще ссылки по теме:

C++ Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный массив
Динамический массив. Ввод размерности с клавиатуры C++
Задан массив a{ij} размерности MxM. Требуется вычислить C++

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

Или воспользуйтесь поиском по форуму:
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
Ответ Создать тему
Опции темы

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