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

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

Войти
Регистрация
Восстановить пароль
 
ALXS
6 / 6 / 6
Регистрация: 12.04.2011
Сообщений: 34
#1

2мерный массив - C++

26.11.2011, 19:48. Просмотров 522. Ответов 2
Метки нет (Все метки)

Всем привет!

В поиске не нашел ничего кроме пустых тем с 1-2 постами по данному вопросу (хотя во многих сборниках задач видел это задание), поэтому создаю новую тему.

Сабж:
"Пусть целочисленная матрица размером nxm содержит информацию об учениках некоторого класса из n человек. В первом столбце проставлена масса (кг), во втором — рост (см), в третьем — успеваемость (средний балл). Ученик называется среднестатистическим по k-му параметру (уникальным по k-му параметру), если на нем достигается минимум (максимум) модуля разности среднего арифметического чисел из k-гo столбца и значения k-гo параметра этого ученика. Ученик называется самым уникальным (самым средним), если он уникален (является среднестатистическим) по самому большому количеству параметров. По данной матрице определить самых уникальных учеников и самых средних."

Может кто-то сталкивался, исходник припас, а может просто поможет заново решить, так как во многих сборниках эта задача есть то многим может пригодиться, прошу помочь с задачей.
Не то, что бы вообще не мог ее решить, но сессия делает свое серьезным ежедневным головняком, так что времени практически нет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 19:48     2мерный массив
Посмотрите здесь:

2-х мерный массив. - C++
Дана целочисленная прямоугольная матрица. Определить: 1) количество столбцов, содержащих хотя бы один нулевой элемент; 2) номера строк,...

m - мерный массив - C++
Дано n точек m мерного пространства, каждая точка имеет массу. Найти координаты точки наиболее удаленной от точки центра масс. Помогите...

1 мерный массив - C++
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) произведение элементов массива с четными номерами; 2) сумму...

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

n-мерный массив - C++
Вопрос заключается в следующем: Как задать n-мерный массив в описании класса, если на начальной стадии неизвестна его размерность? Или...

N-мерный массив в векторе - C++
Здравствуйте. Можно ли в векторе хранить n-мерный массив. т.е. я с клавиатуры ввожу размерность n массива и потом заполняю сам массив.

Двух мерный массив. - C++
Дана прямоугольная матрица. Найти строку с наибольшей и меньшей суммой элементов вывести на экран найденные строки и суммы их элементов.

динамический 2-х мерный массив - C++
помогите плиз вот код , нужно составить динамический 2-х мерный массив double **a int n,m,l; scanf("%d%d",&n,&m); a=(double **)...

про функции и 2х мерный массив - C++
привет) вот тут кое что немагу понять:rtfm: пример int mass ; for (int i =0; i<2; i++) for (int j = 0; j< 0;...

Пяти мерный динамический массив - C++
Ребят помогите сделать пяти мерный динамический массив, я просто не в курсе как это делать.

3-х мерный массив+Строки+функции - C++
Задача: Обработать n1 матриц размером n*m. Элемент строка. В каждой из матриц есть одно слово состоящее только из цифр. Найти его,...

Указатели + структура, а в структуре 2-мерный массив - C++
11111


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
26.11.2011, 20:59     2мерный массив #2
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
double a[N][M]; // Характеристики
double s[M]; // Средние баллы
int u[M];  // Номера уникальных
int m[M]; // Номера средних
int SupU[N], SupM[N]; //  =1 если Самый уникальный, Средний
double t;
int kU, kM, kT, kS;
for(j=0; j<M; j++) {
  t = 0;
  for(i=0; i<N; i++) t += a[i][j];
  s[j] = t / N;
  u[j] = m[j] = 0;
  for(i=1; i<N; i++) {
     if (fabs(a[j][i] - s[j]) > fabs(a[j][u[j]] - s[j])) u[j] = i; 
     if (fabs(a[j][i] - s[j]) < fabs(a[j][m[j]] - s[j])) m[j] = i; 
  }
}
kU = kM = 0;
for(i=0; i<N; i++) {
  SupM[i] = SupU[i] = 0;
  for(kT=kS=j=0; j<M; j++) { // Вычисляем максимумы средноты и уникальности
     if (j==u[j]) kT ++;
     if (j==m[j]) kS ++;
  }
  if (kT > kU) kU = kT;
  if (kS > kM) kM = kS;
}
for(i=0; i<N; i++) {
  for(kT=kSj=0; j<M; j++) {
     if (j==u[j]) kT ++;
     if (j==m[j]) kS ++;
  }
  if (kT==kU) SupU[i] = 1;
  if (kS==kM) SupM[i] = 1;
}
 // Теперь в массивах SupU, SupM стоят 1 для самых
}
У этого алгоритма по крайней мере один недостаток. Если несколько ребят имеют одинаковый показатель, то в средние или уникальные попадет только один из них.
Исправляется некоторым усложнением алгоритма.
Первым проходом находим меньшую и большую разность, а потом заполняем шкалы наподобие Sup-шкал. Тогда u, m должны быть массивами [N][M]
Код не проверял, возможны описки и ошибки.
Возможны и более элегантные решения, это, что называется, в лоб.
Надеюсь, разберешься.
Удачи!
ALXS
6 / 6 / 6
Регистрация: 12.04.2011
Сообщений: 34
27.11.2011, 00:39  [ТС]     2мерный массив #3
Спасибо большое, разобраться\дописать легче думаю будет, чем писать заново

Надеюсь не мне одному поможет это начинание.
Yandex
Объявления
27.11.2011, 00:39     2мерный массив
Ответ Создать тему
Опции темы

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