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

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

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

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

26.11.2011, 19:48. Просмотров 532. Ответов 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мерный массив (C++):

2мерный массив - C++
Привет всем. Помогите пожалуйста решить нетрудную задачу.Заранее спасибо. (если можно рабочую версию) Дан двумерный массив. Считать...

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

Указатель на 2мерный массив в функцию - C++
Добрый день, уважаемые. Столкнулся вот с какой проблемой. Хотелось бы отправлять в функцию указатель на свой 2х мерный массив чтоб после...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию"Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

2мерный массив - QBasic
Найти суммы чисел впервом ипоследнем столбцах и сравнить их. 4х4. 4030 0302 2010 0104. сделайте плизз на завтро нужно

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Day
1155 / 960 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
26.11.2011, 20:59 #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  [ТС] #3
Спасибо большое, разобраться\дописать легче думаю будет, чем писать заново

Надеюсь не мне одному поможет это начинание.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2011, 00:39
Привет! Вот еще темы с ответами:

2мерный массив - QBasic
массив 2 2 2 2 0 1 0 2 0 0 1 3 2 0 3 0 вывести массив и поменять местами 1й и 3й столбец. сделайте пожалуйста))

Записать 2мерный массив в файл - C++ Builder
желательно самым простым способом... подскажите как?

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y - QBasic
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y. ...

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а - Turbo Pascal
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41 ошибку выдает. Что делать? Вот...


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

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

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