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

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

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

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

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

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

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

Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный массив - C++
Кто может сделайте пожалуйста. Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный...

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

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

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

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

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

21
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
23.10.2010, 23:30 #2
Создаешь динамический массив размером N+M . Заполняешь его элементами исходных массивов и
сортируешь,скажем пузырьком, раз нельзя функцию сортировки использовать
1
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 203
23.10.2010, 23:41 #3
эмм... но вот вариант:

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
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
 
int n,m;
float *a;
float *b;
float *c;
 
int main()
{
 int i,j;
 cout<<"Vvedite razmernost pervogo massiva,uchtite,shto n>=m\n";
 cin>>n;
 a=new float[n];
 cout<<"Vvedite pervuy massiv\n";
 for(i=0;i<n;i++)
   cin>>a[i];
 cout<<"Vvedite razmernost vtorogo\n";
 cin>>m;
 b=new float[m];
 cout<<"Vvedite vtoroy massiv\n";
 for(i=0;i<m;i++)
 cin>>b[i];
 
  j=0;
  for(i=0;i<n;i++,j++)
  {
     if(a[i]>=b[i]) 
     {   
       c[j]=b[i];
       j++;
       c[j]=a[i];
     }
     else 
     {
       c[j]=a[j];
       j++;
       c[j]=b[i];
      }
  }
if(n!=m)
 for(i=(n-1),j=(2*n-1);i<m;i++,j++)
  c[j]=b[i];
 
cout<<"Resultat\n";
for(i=0;i<(n+m);i++)
 cout<<c[i]<<"   ";
getch(); 
return 0;
}
если m<n то допиши по аналогии.
да. решение верно только если исходные массивы уже упорядочены по возрастанию.
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 11:35  [ТС] #4
Ага.Вроде ясно...спасибо...чуть что спрошу что не ясно

Добавлено через 4 минуты
C++
1
a=new float[n];
вот что-то не совсем уверена....Это так мы как бы задаем вводимый с клавиатуры массив?

Добавлено через 2 минуты
...это динамический массив наверное....
0
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
24.10.2010, 11:55 #5
Цитата Сообщение от barlog Посмотреть сообщение
...это динамический массив наверное....
ага, тут выделяется под него память
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 12:01  [ТС] #6
А без динамического массива это можно решить....а то как бы мы проходим статический массив...странно как-то((
0
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 203
24.10.2010, 12:20 #7
http://www.cyberforum.ru/attachment....5&d=1286030841 -хорошая методичка. тоненькая, но очень полезная. читай на здоровье)
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 12:56  [ТС] #8
спасибо.но у меня книга есть....дело не в этом.Как бы в условие задачи подразумевается решить не использую динамический массив.через статический...у меня есть мысля, что можно задать сначала, как бы, массив максимальной размерности, а потом уже массив размерности n и m... потом как то сделать их сумму...Может кто-нибудь знает или поможет?Пожалуйста...

Добавлено через 3 минуты
0
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 203
24.10.2010, 12:57 #9
стоит для начала создать огромный массив "с". а потом упомянуть условии об ограничении на n и m. а позже результирующий массив "с" выводить на экран только до (n+m)-го элемента как я указала в коде. так создастся видимость, что массив не огромен, а имеет размерность чётко n+m)))
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 13:08  [ТС] #10
Спасибо...но мне не очень понятно((
C++
1
2
const n_max=100;
        float C[n_max];
Создали огромный массив С.
А дольше непонятно...."а потом упомянуть условии об ограничении на n и m. а позже результирующий массив "с" выводить на экран только до (n+m)-го элемента как я указала в коде"...((
не могли бы вы ,пожалуйста, показать.

Добавлено через 3 минуты
Ааааа....воо...)
C++
1
2
3
4
5
6
7
8
9
10
11
12
const n_max=100;
        float C[n_max];
cout<<"Vvedite razmernost pervogo massiva,uchtite,shto n>=m\n";
 cin>>n;
 cout<<"Vvedite pervuy massiv\n";
 for(i=0;i<n;i++)
   cin>>a[i];
 cout<<"Vvedite razmernost vtorogo\n";
 cin>>m;
 cout<<"Vvedite vtoroy massiv\n";
 for(i=0;i<m;i++)
 cin>>b[i];
Вот так что ли....или что дальше...че то оно не работает((
0
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 203
24.10.2010, 13:13 #11
C++
1
2
3
4
5
float c[100];  //огромный массив
 
cout<<"Введите n и m через пробел. но учтите, что n+m не должно превышать 100";
cin>>n;
cin>>m;
1
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.10.2010, 13:16 #12
Цитата Сообщение от barlog Посмотреть сообщение
у меня есть мысля, что можно задать сначала, как бы, массив максимальной размерности, а потом уже массив размерности n и m
Это неверный подход.
Цитата Сообщение от barlog Посмотреть сообщение
а то как бы мы проходим статический массив
Тогда в чем проблема-то?
C
1
2
3
4
5
6
7
8
9
10
11
12
#define NSIZE 5
#define MSIZE 7
#define RSIZE ((NSIZE) + (MSIZE))
 
int main()
{
    int n[NSIZE];
    int m[MSIZE];
    int r[RSIZE];
 
    // ........
}
1
IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 203
24.10.2010, 13:25 #13
barlog, что выдаёт? какую ошибку?
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.10.2010, 13:45  [ТС] #14
#define NSIZE 5
#define MSIZE 7
#define RSIZE ((NSIZE) + (MSIZE))

Это как функция?....и почему не правильный подход

Добавлено через 4 минуты
сейчас еще попробую...если что не так напишу...((

Добавлено через 8 минут
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
#include <vcl.h>
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{ int n,m , ;
    int i,j;
      float c[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>>a[i];
 cout<<"Vvedite razmernost vtorogo\n";
 cin>>m;
 cout<<"Vvedite vtoroy massiv\n";
 for(i=0;i<m;i++)
 cin>>b[i];
 
  j=0;
  for(i=0;i<n;i++,j++)
  {
     if(a[i]>=b[i]) 
     {   
       c[j]=b[i];
       j++;
       c[j]=a[i];
     }
     else 
     {
       c[j]=a[j];
       j++;
       c[j]=b[i];
      }
  }
if(n!=m)
 for(i=(n-1),j=(2*n-1);i<m;i++,j++)
  c[j]=b[i];
 
cout<<"Resultat\n";
for(i=0;i<(n+m);i++)
 cout<<c[i]<<"   ";
getch();
 
        return 0;
}
//---------------------------------------------------------------------------
Добавлено через 1 минуту
пишет что в строке 19 и 24
a и b неопределены

Добавлено через 1 минуту
ААА...нодо вместо них ведь писать с[i]....а тогда как мы отличим a от b?

Добавлено через 1 минуту
значит сделать 2 максимальных массива например
C++
1
2
float c[100];
float x[100];
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.10.2010, 13:47 #15
Я тут одного понять не могу - как можно получить отсортированный массив не используя алгоритм
сортировки.
Только в коде от руки ввести элементы нового массива
0
24.10.2010, 13:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 13:47
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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