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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
haosino
1 / 1 / 0
Регистрация: 09.02.2010
Сообщений: 8
#1

Медиана массива - C++

19.09.2010, 18:21. Просмотров 3919. Ответов 4
Метки нет (Все метки)

Всем привет!
Помогите кто чем может с задачей а то сдавать через пару дней, незнаю что делать

Сама задача--

В массиве, содержащем нечетное количество элементов, найти медиану значение, для которого количество больших элементов равно количеству меньших. Учесть тот факт, что при наличии равных элементов медиана не может быть определена.

Заранее спасибо! Надеюсь разделом не ошибся, т.к пишу в Visual Studio 2008, C++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2010, 18:21     Медиана массива
Посмотрите здесь:

C++ Медиана последовательности
C++ В одномерном массиве, состоящем из n элементов массива, вычислить минимальный элемент массива
Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания C++
Не использую доп. элементов массива переставить элементы массива в обратном порядке C++
C++ Создать два массива. Вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10
C++ Массивы (найти номер максимального элемента массива, произведение элементов массива)
Постороить из 2 мерного массива в 1 мерный, который содержит все элементы 2 мерного массива , содержащихся по периметру массива C++
Вычислить сумму максимального элемента массива и количества нулевых элементов массива C++
Подсчитать число элементов массива A[n], превосходящих среднее геометрическое этого массива C++
Медиана вхождений в документы C++
Заменить элементы массива,стоящие на нечетных позициях, на среднее арифметическое массива C++
Найти номер элемента массива У, ближайшего по значению к наименьшему элементу массива Х. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
19.09.2010, 18:25     Медиана массива #2
вообще то ошибся, ха бесплатно врядли сделают с нуля
тока с денюшкой
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
19.09.2010, 18:38     Медиана массива #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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
 
int main()
{
   int*Arr;
   int n;
   std::cout<<"Enter n: ";
   std::cin>>n;
   if(n%2==0)
   {
      std::cout<<"Size of array can`t be even\n";
      return 1;
   }
   Arr=new int[n];
   std::cout<<"Enter elements of array\n";
   for(int i=0; i<n; ++i)
   {
      std::cout<<"-> ";
      std::cin>>Arr[i];
   }
   for(int i=0; i<n; ++i)
   {
      int cnt=0;
      for(int j=0; j<n; ++j)
      {
         if(i==j)
            continue;
         if(Arr[i]==Arr[j])
            cnt++;
      }
      if(cnt>0)
      {
         std::cout<<"Can`t be equals elements in array\n";
         return 1;
      }
   }
   int*MinArr;
   int*MaxArr;
   MinArr=new int[n];
   MaxArr=new int[n];
   for(int i=0; i<n; ++i)
   {
      int cntmin=0;
      int cntmax=0;
      for(int j=0; j<n; ++j)
      {
         if(i==j)
            continue;
         if(Arr[i]<Arr[j])
            cntmin++;
         else if(Arr[i]>Arr[j])
            cntmax++;
      }
      MinArr[i]=cntmin;
      MaxArr[i]=cntmax;
   }
   int med=0;
   for(int i=0; i<n; ++i)
   {
      if(MinArr[i]==MaxArr[i])
      {
          med=Arr[i];
      }
   }
   std::cout<<"Median of this array is: "<< med <<'\n';
   return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от D@rkD@iver Посмотреть сообщение
вообще то ошибся, ха бесплатно врядли сделают с нуля
тока с денюшкой
Ну.. Ошибся ты. Задание то нетрудное.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
19.09.2010, 19:03     Медиана массива #4
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
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE 5
 
int compare(const void *a, const void *b) {
  return *(int*)a - *(int*)b;
}
 
int main(void)
{   
    int i = 0;
    int j = 0;
    int range[SIZE];
    
    for(i = 0; i < SIZE; ++i) 
        range[i] = rand() % 20;
    
    for(i = 0; i < SIZE; ++i)
        printf("%d ", range[i]);
    printf("\n");
    
    for(i = 0; i < SIZE; ++i) {
        for(j = i + 1; j < SIZE; ++j) {
            if(range[i] == range[j]) {
                printf("can't find median\n");
                return 0;
            }
        }
    }                
    
    qsort(range, SIZE, sizeof(int), compare);
    
    printf("Median is %d\n", range[SIZE / 2]);
}
haosino
1 / 1 / 0
Регистрация: 09.02.2010
Сообщений: 8
19.09.2010, 19:46  [ТС]     Медиана массива #5
Спасибо огромное!!!
Yandex
Объявления
19.09.2010, 19:46     Медиана массива
Ответ Создать тему
Опции темы

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