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

Найти наибольшие значения заданных массивов - C++

Восстановить пароль Регистрация
 
skrepochka73
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 8
31.03.2011, 22:08     Найти наибольшие значения заданных массивов #1
Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный массив в порядке убывания его элементов. Найти наибольшие значения заданных массивов. Создать функции для сортировки массива и определения его максимального значения.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2011, 22:08     Найти наибольшие значения заданных массивов
Посмотрите здесь:

C++ Найти наибольшие элементы и их порядковые номера массивов
Определить тип заданных выражений и найти их значения C++
C++ Найти максимальное и минимальное значения среди заданных действительных чисел
C++ Вычислить и вывести средние квадратические значения положительных элементов заданных массивов
Найти сумму и среднее арифметическое каждого из заданных массивов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Subgrando
31.03.2011, 22:09
  #2

Не по теме:

А мы успеем? Время у всех одно.

skrepochka73
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 8
31.03.2011, 22:18  [ТС]     Найти наибольшие значения заданных массивов #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
#include <stdio.h>
#include <iostream.h>
#include <alloc.h>
#define N 10
int main()
{
    int a[N],min,max,b[N][N],n=0,j=0,i,k=0,kol;
    kol=N;
    cout <<"VVedite massiv"<<endl;
 
for (i=0; i<N; i++)
{
    printf ("\n \t %d = ", i);
    scanf ("%i", & a[i]);
}
for (j=0; j<M; ++j)
{
    printf ("\n \t %d = ", j);
    scanf (" %i", & b[j]);
    k=i+j;
}
c[k]=a[i]+b[j];
 
Void Max
{
        max=c[0];
           for(k=0;k<N;k++)
           { 
               if(c[k]>max)
               max=c[k];
           }
  }
     for(k=0;k<N;k++)
  cout <<"Max="<<max<<endl;
  }
}
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
31.03.2011, 22:25     Найти наибольшие значения заданных массивов #4
Функция в функции, Void вместо void, странное объявление функции... Это разве компилируется?

C++
1
2
3
4
5
6
7
int max(int* ar) {
   int maximum = ar[0];
   for(int i = 0; i < N; i++) {
       if(ar[i] > maximum) maximum = ar[i];
   }
   return maximum;
}
Вот это легко.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
31.03.2011, 22:27     Найти наибольшие значения заданных массивов #5
Пойдем по-порядку:
1)
Цитата Сообщение от skrepochka73 Посмотреть сообщение
Из двух целочисленных массивов различной размерности сформировать общий массив.
Если я правильно понял суть задания, общий массив должен быть размером K=N+M, где N и M размеры массивов А и В соответственно. Например первую часть общего массива занимает А, вторую В.
2)
Цитата Сообщение от skrepochka73 Посмотреть сообщение
Упорядочить полученный массив в порядке убывания
Посмотрите на форуме любой алгоритм сортировки, разберитесь, и прикрутите к вашей программе.
Остальное легче, определение максимума вроде у вас сделано.
skrepochka73
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 8
31.03.2011, 22:40  [ТС]     Найти наибольшие значения заданных массивов #6
Спасибо.. сейчас попробую...
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
31.03.2011, 23:29     Найти наибольшие значения заданных массивов #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
void PrintArray(int *array, size_t array_size) {
  for (size_t i = 0; i < array_size; ++i)
    printf("%4d", array[i]);
  printf("\n");
}
 
void RandomizeArray(int *array, size_t array_size) {
  for (size_t i = 0; i < array_size; ++i)
    array[i] = rand() % 100;
}
 
int Maximum(int *array, size_t array_size) {
  int result = array[0];
  for (size_t i = 1; i < array_size; ++i)
    if (array[i] > result)
      result = array[i];
  return result;
}
 
void QuickSort(int *array, int left, int right) {
  int i = left, j = right;
  int tmp;
  int pivot = array[(left + right) / 2];
 
  /* partition */
  while (i <= j) {
    while (array[i] > pivot) ++i;
    while (pivot > array[j]) --j;
    if (i <= j) {
      tmp = array[i];
      array[i] = array[j];
      array[j] = tmp;
      ++i;
      --j;
    }
  };
 
  /* recursion */
  if (left < j) QuickSort(array, left, j);
  if (i < right) QuickSort(array, i, right);
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t array_a_size = 10 + rand() % 5;
  size_t array_b_size = 10 + rand() % 5;
  size_t array_ab_size = array_a_size + array_b_size;
  int *array_a = new int[array_a_size];
  int *array_b = new int[array_b_size];
  int *array_ab = new int[array_ab_size];
 
  RandomizeArray(array_a, array_a_size);
  PrintArray(array_a, array_a_size);
  printf("Maximal element: %d.\n", Maximum(array_a, array_a_size));
  RandomizeArray(array_b, array_b_size);
  PrintArray(array_b, array_b_size);
  printf("Maximal element: %d.\n", Maximum(array_b, array_b_size));
 
  // формирование суммарного массива
  for (size_t i = 0; i < array_a_size; ++i)
    array_ab[i] = array_a[i];
  for (size_t i = 0; i < array_b_size; ++i)
    array_ab[i + array_a_size] = array_b[i];
  printf("Array a + b: \n");
  PrintArray(array_ab, array_ab_size);
  // сортировка
  QuickSort(array_ab, 0, array_ab_size - 1);
  printf("Sorted array a + b: \n");
  PrintArray(array_ab, array_ab_size);
  printf("Maximal element: %d.\n", Maximum(array_ab, array_ab_size));
 
  delete [] array_a;
  delete [] array_b;
  delete [] array_ab;
  return 0;
}
skrepochka73
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 8
02.04.2011, 23:31  [ТС]     Найти наибольшие значения заданных массивов #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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <alloc.h>
 
  void sort (int *a,int n)
   {int i,k;
   i=0;
   while (i<n-1)
   if (a[i]<a[i+1]) {k=a[i];a[i]=a[i+1];a[i+1]=k;i=0;}
    else {i++;};
    }
  void max (int *a,int n,int *b,int m, int *c,int l)
  { int i; int *p;
  p=new int [n];
  for (i=0;i<n;i++)
  p[i]=a[i];
  sort (p,n);
  cout << "maxa="<< p[0]<<"\n";
  delete [ ] p;
  p=new int [m];
  for (i=0;i<m;i++)
  p[i]=b[i];
  sort (p,m);
  cout << "maxb="<< p[0]<<"\n";
  delete [ ] p;
  cout << "maxc="<< c[0]<<"\n";
  }
 
  void main()
  {int *a;int *b;int *c; int i,n,l,m,j;
  clrscr();
   cout << "vvedite razmer masiva a \n";
   cin >> n;
   a=new int [n];
    cout << "vvedite razmer masiva b \n";
    cin >>m;
   b=new int [m];
 
   cout << "vvedite masiv a \n";
   for (i=0;i<n;i++)
    cin >> a[i];
 
    cout << "vvedite masiv b \n";
   for (i=0;i<m;i++)
    cin >> b[i];
 
   l=m+n;
   cout << " masiv c \n";
   c=new int [l];
   for (i=0;i<n;i++)
    {c[i]=a[i];
    cout << c[i]<< ' ';
    };
    j=0;
   for (i=n;i<l;i++)
    {c[i]=b[j];
    j++;
    cout << c[i]<< ' ';
     };
   sort (c,l);
   cout << "\n";
   max(a,n,b,m,c,l);
   cout << "\n";
   cout << "sort c=\n";
   for (i=0;i<l;i++)
   cout << c[i]<< " ";
   delete [ ]c;
   delete [ ]a;
   delete [ ]b;
   getch();
}
vitaska
 Аватар для vitaska
83 / 83 / 2
Регистрация: 04.02.2010
Сообщений: 162
02.04.2011, 23:38     Найти наибольшие значения заданных массивов #9
пишите на будущее int main(){... return 0;}. по стандарту функция main() имеет тип int а не void
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 23:53     Найти наибольшие значения заданных массивов
Еще ссылки по теме:

C++ Вычислить суммы отрицательных элементов заданных массивов
C++ Наибольшие и наименьшие значения, на вашей системе, следующих типов
Разделить элементы массивов на их наибольшие значения C++

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

Или воспользуйтесь поиском по форуму:
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
02.04.2011, 23:53     Найти наибольшие значения заданных массивов #10
Цитата Сообщение от skrepochka73 Посмотреть сообщение
в итоге сдала
Поздравляю!
Yandex
Объявления
02.04.2011, 23:53     Найти наибольшие значения заданных массивов
Ответ Создать тему
Опции темы

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