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

Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
01.12.2010, 21:01     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #1
Добрый вечер.У меня задача на 2-х мерные массивы. Вот текст задачи:
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 21:01     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания.
Посмотрите здесь:

Упорядочить по возрастанию элементы каждого столбца матрицы C++
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания C++
C++ Упорядочить по возрастанию элементы каждого столбца матрицы
Упорядочить в порядке убывания элементы, расположенные между вторым по- ложительным и предпоследним отрицательным значениями массива C++
C++ Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
02.12.2010, 01:54     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #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
#include <iostream>
using namespace std;
int main()
{
  //задаем массив
  //размеры массива будут NxM
  int n,m=1;
  cout << "Ввод размеров массива:\n";
  cin >> n >> m;
  float mass[n][m];
  float tmp=0;
  cout << "Ввод массива:\n";
  for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin >> mass[i][j];
  //сортировка
  for(int j=0;j<n;j++) 
    for(int i=0;i<m;i++)  
      for(int k=i;k<m;k++) 
      if (mass[i][j]<mass[k][j]) 
        {
          tmp=mass[i][j];
          mass[i][j]=mass[k][j];
          mass[k][j]=tmp;
        }
  cout << "\n Выводим сортированный:\n";
  for (int i = 0;i<n;i++) 
    {
      for (int j = 0;j<m;j++) cout << mass[i][j] << "\t"; 
      cout << "\n";
    }
}
Добавлено через 3 минуты
это с++, на си алгоритм такой же, но вывод будет через printf.
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
02.12.2010, 10:34  [ТС]     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #3
Программа не работает,выдает куча ошибок
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
02.12.2010, 11:35     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #4
ты чем компилируешь? у меня все отлично собирается и работает:
g++ myfile.cpp -o filename
./filename
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
02.12.2010, 19:31  [ТС]     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #5
Microsoft Visuo Studio 2008
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
02.12.2010, 20:14     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #6
код рабочий, ты что-то не так делаешь. покажи хоть, что за ошибки выдает
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
02.12.2010, 20:46  [ТС]     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #7
Я просто скопировала ваш текст и еще ничего не исправляла.
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2087: mass: отсутствует индекс
error C2133: mass: неизвестный размер
error C2059: синтаксическая ошибка: return
error C2059: синтаксическая ошибка: }
error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
error C2059: синтаксическая ошибка: }
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
03.12.2010, 13:35     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #8
попробуй так:
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
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
{
  //задаем массив
  //размеры массива будут NxM
  int n,m=1;
  cout << "Ввод размеров массива:\n";
  cin >> n >> m;
  float mass[n][m];
  float tmp=0;
  cout << "Ввод массива:\n";
  for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin >> mass[i][j];
  //сортировка
  for(int j=0;j<n;j++) 
    for(int i=0;i<m;i++)  
      for(int k=i;k<m;k++) 
      if (mass[i][j]<mass[k][j]) 
        {
          tmp=mass[i][j];
          mass[i][j]=mass[k][j];
          mass[k][j]=tmp;
        }
  cout << "\n Выводим сортированный:\n";
  for (int i = 0;i<n;i++) 
    {
      for (int j = 0;j<m;j++) cout << mass[i][j] << "\t"; 
      cout << "\n";
    }
return 0;
}
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
03.12.2010, 14:41     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #9
Селявкина Мария, используйте динамическое выделение памяти:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
float** mass = new float*[n];
for(i = 0; i < n; i++)
{
    mass[i] = new float[m];
}
 
......
// после работы - освободить память
for (i = 0; i < n; i++)
{
    delete [] mass[i];
}
delete [] mass;
Или объявите размеры массива как константы, например:
C++
1
2
const int n = 5;
const int m = 5;
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
09.12.2010, 17:45  [ТС]     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #10
А что for(int k=i;k<m;k++) в данном цикле обозначает k?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 14:31     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания.
Еще ссылки по теме:

C++ Упорядочить элементы массивов в порядке убывания целой части STL
C++ В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца

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

Или воспользуйтесь поиском по форуму:
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
10.12.2010, 14:31     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. #11
k - это счетчик цикла, перебирает элементы столбца.
Программа работает так
пока j не вышло за пределы массива перебираем столбцы с 0 до n
{
пока i не вышло за пределы массива перебираем строки с 0 до m
{
пока k не вышло за пределы массива, перебираем элементы с i до m и, находя максимальный элемент, меняем его с i местами. // т.е в первой итерации находим самый большой элемент и ставим его на позицию i=0, затем находим второй по величине элемент и ставим на позицию i=1 и тд
}
}
Yandex
Объявления
10.12.2010, 14:31     Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания.
Ответ Создать тему
Опции темы

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