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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Консультации.[Липпман/Лажойе] http://www.cyberforum.ru/cpp-beginners/thread392476.html
Приветствую. Начал изучение языка C++ с книги Стенли Б.Липпмана и Жози Лажойе "Язык программирование C++. Третье издание". Про то, что Липпман не рекомендована для новичков, прочел уже в процессе обучения, но так как нареканий у меня нет, продолжил изучение. Первоначальная цель темы - уточнения по поводу ответов на упражнения в книге. §3.3. Указатели. Упражнение 3.10 "Данная программа...
C++ Помогите запрограммировать задачи. 1. Найти все делители натурального числа n. 2. Заданное натуральное число n представьте в виде суммы различных чисел Фибоначчи. Сколько слагаемых будет входить в эту сумму? буду благодарен ;) Добавлено через 20 часов 38 минут Эксперты, жду вашей помощи ;) http://www.cyberforum.ru/cpp-beginners/thread392474.html
C++ Быстрые арифметические операции
Здравствуйте. Я знаю, что в си++ есть понятие быстрых арифметических операций (не могу вспомнить термин). Т.е. не нужно писать i = i +1, достаточно написать i++. Вопрос следующий: какие еще есть быстрые операции, без повторной записи переменной в выражении? К примеру, как можно укоротить это выражение: e = 1/mass + e; Буду очень благодарен, если дадите мне ссылку на полный перечень подобных...
C++ undefined reference to `variable`
Вобщем то есть заголовочный файл main.h #ifndef _MAIN_H #define _MAIN_H #include <vector> #include <windows.h> using std::vector; extern vector<char*> list;
C++ Задача : "Скобочки". http://www.cyberforum.ru/cpp-beginners/thread392433.html
Некоторые скобочные структуры правильные, другие — неправильные. Ваша задача — определить правильная ли скобочная структура. Вход: Слово в алфавите из двух круглых скобочек ( и ). Длина слова меньше 4001. Выход: Либо 'NO', либо 'YES' без кавычек. ВХОД #1: () ВЫХОД #1:
C++ исправьте ошибки пожалуйста #include "stdafx.h" #include <math.h> float rec(float n) { if (n==1)return 0; else return log(n/(sqrt(n))+rec(n-1)); } int _tmain(int argc, _TCHAR* argv) { printf ("vvedite seloe n \n"); подробнее

Показать сообщение отдельно
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
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]
Код не проверял, возможны описки и ошибки.
Возможны и более элегантные решения, это, что называется, в лоб.
Надеюсь, разберешься.
Удачи!
 
Текущее время: 13:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru