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

Работа с массивом (По данной матрице определить самых уникальных учеников и самых средних.) - C++

Восстановить пароль Регистрация
 
kolya27
0 / 0 / 0
Регистрация: 18.07.2013
Сообщений: 4
21.07.2013, 17:00     Работа с массивом (По данной матрице определить самых уникальных учеников и самых средних.) #1
Пожалуйста исправьте ошибки в программе:
Пусть целочисленная матрица размером пхm содержит информацию об учениках некоторого класса из п человек. В первом столбце проставлена масса (кг), во втором — рост (см), в третьем — успеваемость (средний балл) и т.д. (используйте свои дополнительные показатели). Ученик называется среднестатистическим по k-му параметру (уникальным по k-му параметру), если на нем достигается минимум (максимум) модуля разности среднего арифметического чисел из k-го столбца и значения k-го параметра этого ученика. Ученик называется самым уникальным (самым средним), если он уникален (является среднестатистическим) по самому большому количеству параметров. По данной матрице определить самых уникальных учеников и самых средних.
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
#include <iostream.h>
#include <windows.h>
void l1(int** info, int n, int t)
{
int i,j;
int* students_mid = new int[t];
int* students_un = new int[t];
for(i=0; i < n; i++)
{
double mid=0;
for(j = 0; j < t; j++)
{
mid += info[i][j];
} 
mid /= t;
int min_s = 0;
int max_s = 0;
for(j = 0; j < t; j++){
if(abs(mid - info[i][max_s]) > abs(mid - info[i][j]))
max_s = j;
if(abs(mid - info[i][max_s]) < abs(mid - info[i][j]))
min_s = j;
} 
students_mid[min_s]++;
students_un[max_s]++;
}
cout << "Средние:" << endl;
for(i = 0; i < t; i++){
if(students_mid[i] > 0)
cout << "Ученик №" " i " " = " << students_mid[i] << endl;
}
cout << "Уникальные:" << endl;
for(i = 0; i < t; i++){
if(students_un[i] > 0)
cout << "Ученик №" " i " " = " << students_un[i] << endl;
}
}
 
int main()
{
    SetConsoleOutputCP(1251);
int info[3][5] = {{1,2,32,4,5}, {2,36,4,5,6}, {31,4,5,6,7}}; 
int **M = new int*[3];
for (int i=0; i<3; i++) M[i] = info[i];
l1(M,3,5);
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2013, 17:00     Работа с массивом (По данной матрице определить самых уникальных учеников и самых средних.)
Посмотрите здесь:

C++ Сформируйте новую строку из пяти самых длинных слов.
C++ Уроки по C++ для самых маленьких
C++ Выявление самых ярких точек на чёрно-белом изображении
C++ Пять самых длинных слов
C++ Работа с текстом: Выделить две группы самых коротких слов
Найти 3 самых больших и 3 самых маленьких числа в двумерном массиве C++
Есть 5 самых популярных книг по C++ ,обощающая тема C++
Найти 50 самых длинных слов в файле C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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